对象创建:
1、spring底层,单例bean,将bean对象放入map中管理
2、如果初始化后不需要做处理,则就是将普通对象直接放入map中,然后可以直接根据beanName获取bean对象
3、普通对象没有依赖注入前,属性值是null,依赖注入后,属性值被new出来
4、beanName唯一,但是bean对象不唯一,如果要获取bean对象,则先取bean对象,然后再根据byType过滤
5、初始化后,产生代理对象proxy
super.test()还是null
target是普通对象,普通对象的test是有值的
事务失效
a()方法事务失效原因:
此时a()是普通对象的方法、代理对象的注解才能生效,普通对象的注解不生效;
如何是a()方法的事务生效:
(1)循环注入,在当前service中注入自己本身
(2)将a()方法放入另外一个service中,然后注入这个service