一、Spring IOC
控制反转。将对象创建和管理交给spring 容器。我们只需要从容器中获取对象使用即可。
1.spring管理的bean 和自己创建的对象有什么区别?
自己创建的自动注入不会生效。
spring Bean初始化先通过对象的构造方法初始化对象,然后给带有依赖注入的属性赋值。最终得到bean,所以spring 管理的bean 中依赖注入的属性是有值的。
Bean的创建生命周期
UserService.class --->无参构造方法(推断构造方法) -->对象 ---->依赖注入(属性赋值)
---->初始化前(@postConstruct)---->初始化----->初始化后(aop)---->代理对象
-------->Bean
调用无参构造方法时,如果没有构造方法调用默认的无参构造。如果有多个默认调用无参构造。如果不存在无参构造则报错。
二、Spring AOP:
如果在初始化后调用了AOP则返回代理对象。因为通过AOP创建的代理对象,后面没有再次进行设置值,所以里面的属性值都为空。
三、Spring 事务:
创建了代理对象,在事务中将MYSQL的自动提交设置为false,默认为true。如果不是动态代理对象则事务不能生效