Spring 自動裝配方式與對應的註解

Spring提供了4種自動裝配Bean依賴關係的策略。

一、Spring的4種自動裝配策略

1、byName,根據名稱注入:把與Bean屬性具有相同名字(或ID)的其他Bean自動裝配到Bean對應的屬性中,如果沒有則該屬性不裝配。

2、byType,根據類型注入:把與Bean的屬性具有相同類型的其他Bean自動裝配到Bean對應的屬性中。如果沒有就不裝配。

3、constructor,構造方法注入:把與Bean的構造器入參具有相同類型的其他Bean自動裝配到Bean構造器的對應的入參中。

4、autotetect:首先嚐試用構造方法注入,失敗了就用byType

以上來自《Spring實戰》一書中的分類,對Spring中裝配方式的分類方式很多,以上應該是根據原理分。有人又將其分爲構造方法注入,setter注入,基於註解的注入,我想這可能是根據操作方法分。

 

二、自動裝配方式與SpringBoot中的註解的聯繫

SpringBoot中,我們使用註解來實現依賴注入。根據使用場景可以分爲以下兩類

1、使用Bean:完成屬性、方法的組裝。一般用來修飾字段,構造函數,或者設置方法,並做注入。

      我將其理解爲子Bean,是作爲一個“Bean爸爸”的內部成員來爲“Bean爸爸”服務的。

  • @Autowired:屬於byType
  • @Resource:屬於byName

2、註冊Bean:把普通java類實例化到spring容器中,相當於配置文件中的<bean id="" class=""/>。這個對象的內部可能用到@Autowired , @Resource來完成對象、屬性、方法完美組裝。——這是個“爸爸Bean”

  • @Component:泛指組件,當組件不好歸類的時候,可以使用這個註解進行標註
  • @Controller:標註控制層組件,負責將用戶發來的URL請求轉發到對應的服務接口
  • @Service:標註業務層組件
  • @Repository:用於標註數據庫訪問Dao組件
  • @Configration:可理解爲用spring的時候xml裏面的<beans>標籤

 

三、Spring Boot中常用的其他註解

  • @SpringBootApplication:註解他們的main函數所在的類
    • =@Configuration+ @EnableAutoConfiguration +@ComponentScan 
  • @ResponseBody:該方法的返回結果直接寫入HTTP response body中
  • @RestController=@ResponseBody + @Controller:標註控制層組件
  • @RequestMapping:提供路由信息,負責URL到Controller中的具體函數的映射
  • @GetMapping=@RequestMapping(method = RequestMethod.GET):將HTTP Get 映射到 特定的處理方法上。
  • @PostMapping=@RequestMapping(method = RequestMethod.POST)
  • @PathVariable:獲取url中的數據。
  • @ComponentScan 組件掃描,發現和組裝一些Bean。
  • @EnableAutoConfiguration自動配置。
  • @SpringBootApplication:申明讓spring boot自動給程序進行必要的配置,這個配置等同於:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三個配置。
  • @Data 自動生成setter、getter方法
  • @Import:用來導入其他配置類。
  • @ImportResource:用來加載xml配置文件。
  • @Bean:放在方法的上面,而不是類,意思是產生一個bean,並交給spring管理。
  • @Inject:等價於默認的@Autowired,只是沒有required屬性;

 

 

參考了以下博客,特此感謝!

https://www.jianshu.com/p/686ecfc1a4b8

https://blog.csdn.net/qq_29347295/article/details/78709511

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章