多重載入Bean方式

我們要發財了發表於2021-01-04

可以從Bean定義、名稱、注入、生命過程等方面分類 也可以從基於配置方式進行分類。 大體上可以分為以下圖中幾種型別的載入方式。

在這裡插入圖片描述

Bean定義方面:宣告Bean,為了以後的呼叫,大部分用來定義類物件和方法

基於Xml:最簡單的方式,直接在xml檔案中配置id並在java裡獲取Id。
有三種獲取方式,原理相同都是在xml裡設定Bean的Id,也可以通過factory-method方式獲取
需要注意建構函式和set、get方法
在這裡插入圖片描述UserService userService = (UserService) applicationContext.getBean(“userService”);
UserService userService = (UserService) applicationContext.getBean(“userServiceFactory”);

UserService userService = (UserService) applicationContext.getBean(“getUserService”);

基於註解:最常用的方式之一,用來註解類,有@Component,@Service等常用標籤,不需要set、get等方法

在類上直接寫@Component就會注入該類 如果有有參構造,一定要寫上 無參構造 ,否則報錯,因為IOC是基於反射原理實現的。
@Component
public class Person {
}

然後呼叫該類,@Compoent預設該類小寫

Person person2=(Person) applicationContext.getBean(“person”);

基於Java註解:也算比較常用,常用來設定一些java類屬性

比如:在dog類下bean註解Dog的 toString()方法

            測試類裡Cat cat=(Cat) applicationContext.getBean("cat");

System.out.println("–"+cat);

        結果:10--cat

        執行的狗的toString方法,執行Bean註解的方法,這樣會自動例項化狗物件,前提是這個類已經被註解定義

@Configuratio和@Component都行,

Bean名稱方面:和定義的區別主要是給Bean注入了name屬性注入了值等等

基於Xml:通過id或name指定
 大概情況如圖所示

基於註解:直接在類上寫上@Component(“值”)即可

基於Java註解:使用@Bean(name=“值”)給方法註解

Bean注入方面:主要指給屬性賦值

基於Xml:

基於註解:@Autowired 按類自動注入,注入的類需要已經被註解過。@Qualifier按名稱手動注入,通過已經註解過的Bean值來注入。
  



基於Java註解:在java內部編寫注入邏輯

相關文章