项目中遇到一个Spring初始化bean的问题;spring
1.在spring中定义一个bean,而后注入部分属性值;代理
2.在spring-transaction中定义该类进行事务拦截对象
3.在使用该类时进行注入,获得的是代理类,可是代理类中的属性值都变成系统默认值了事务
缘由:io
Spring对须要事务的类 进行了代理,代理是从新生成一个该bean的实例,与原来已被Spring初始化过的bean没有关系;Spring使用cglib里面的callback 保存原来bean 对象;当进行代理方法调用时,获取去callback里面的被代理对象,调用其方法;方法