spring中@Autowired注解失效的原因分析


spring中,類的成員變量如果使用了@Autowired,這個類必須交給Spring管理,否則注解失效.


原因: spring后置處理器解析此注解,對Bean做增強


交給Spring管理的方式:

  1)  xml中配置對應的Bean標簽
  2)  @Component,@Service,@Controller,@Repository等
  3)  啟動類或其他配置類,使用@Bean注解

2和3的區別:

  @Bean沒有和類的定義綁定,通過方法返回對象,可以進行屬性賦值,可以配置沒有源碼的第三方組件
  @Component系列是直接貼在類上的,與類的定義綁定在一起,組件掃描和自動裝配更方便


注意: 需要最終引用類是交給Spring管理的,如果當前類B中@Autowired注入了類C,並通過@Component交給Spring管理,但類A在使用類B時,是new出來的,依然是無效的.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM