1.spring介绍
a.零配置,API简单
b.面向bean
c.万能胶
d.松耦合,充分利用AOP思想
e.包含很多设计模式
2.为什么要有?
通过基于pojo的轻量级和最小侵入性编程(各自开发,可以把代码合在一起)
通过依赖注入和面向接口松耦合
基于切面和惯性进行声明式编程
通过切面和模板减少样板式代码
而他主要是通过:面向bean,依赖注入以及面向切面这三种方式来达成
总结:简化开发
3.IOC控制反转,DI依赖注入理解
eg:
class A{
int a;
int b;
}
正常情况下:
A a = new A();//是用户手动new的
提一个概念:容器
什么叫容器,酒瓶,用来装酒的
IOC容器
spring通过@Autowire这些个注解来创建了对象,创建的对象存放在容器里面,就和赋值是一样道理,如果
一个对象创建了,不赋值就会浪费
依赖注入的话
class B{
A a;
}
class C{
B b;
}
假设A中有一个方法,say(),,现在b想调用a中的say()方法,调用顺序,此时需要先创建c对象,再创建b,在创建A。
会把他相关的全部自动注入,并且创建容器保存,不会浪费。
4.事务
满足一定的规则的一个规定,面向规定编程,一般是,开启事务,执行,关闭。
5.AOP
切面,跟切苹果一样,如果两个苹果不一样的大小怎么把-苹果的一半,合上去进行无缝链接。
拧螺丝,最好的比方了。然后可以引出概念,面向切面编程,把一些满足一定的规则的方法,提取出来,放在一个特定的地方,可以修改这块代码的同时,不影响其他的代码,以上就是我的胡说八道了。
spring 的哪些地方用到了AOP?
事务控制,
AOP底层是用cglib和动态代理实现的。