Spring依賴注入:注解注入


注解注入顧名思義就是通過注解來實現注入,

Spring和注入相關的常見注解有Autowired、Resource、Qualifier、Service、Controller、Repository、Component。


1.@Autowired是自動注入,自動從spring的上下文找到合適的bean來注入

@Autowired(required=true)表示必須找到匹配的Bean,否則將報異常。

@Autowired默認按類型匹配注入Bean

在Spring中,@Autowired注入的類型可以是接口

比如,在Service層中注入Dao,如下示:

@Autowired
private UserDao userDao;

 


2.@Resource要求提供一個Bean名稱的屬性,如果屬性為空,自動采用標注處的變量名和方法名作為Bean的名稱 。

@Resource默認按名稱匹配注入Bean

比如,在Controller層中注入Service,名稱為Service的實現類,如下示

@Resource(name = "userServiceImpl")
 private UserService userService;

另外要注意,@Resource是java自帶的注解,不是Spring中的注解。@Resource注解完整的包路徑為import    javax.annotation.Resource;

 

3.@Qualifier 指定注入bean的名稱

比如,在Controller層中注入Service,名稱為Service的實現類,如下示

 @Autowired
 @Qualifier("userServiceImp")
 private UserSerevice userService;


4.@Service,@Controller,@Repository分別標記類是Service層,Controller層,Dao層的類,spring掃描注解配置時,會標記這些類要生成bean。

@Repository用於標注數據訪問組件,即DAO組件

@Service,@Controller 這些注解要放在接口的實現類上,而不是接口上面。
5.@Component是一種泛指,標記類是組件,spring掃描注解配置時,會標記這些類要生成bean。

6.@Scope用於指定Bean的作用范圍

7.@Autowired和@Resource是用來修飾字段,構造函數,或者設置方法,並做注入的。

而@Service,@Controller,@Repository,@Component則是用來修飾類,標記這些類要生成bean。


免責聲明!

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



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