項目中遇到一個Spring初始化bean的問題;spring
1.在spring中定義一個bean,而後注入部分屬性值;代理
2.在spring-transaction中定義該類進行事務攔截對象
3.在使用該類時進行注入,獲得的是代理類,可是代理類中的屬性值都變成系統默認值了事務
緣由:io
Spring對須要事務的類 進行了代理,代理是從新生成一個該bean的實例,與原來已被Spring初始化過的bean沒有關係;Spring使用cglib裏面的callback 保存原來bean 對象;當進行代理方法調用時,獲取去callback裏面的被代理對象,調用其方法;方法