1.簡化set方法
2.自動裝配 3.指定id進行注入:1.@autowired
qualifier(value=」idname」)//表示強制指定id進行注入 2個註解必須一起使用,否則報錯
2.@resource
說明: 功能上和@autowired
說明:
如果是單個專案使用任意乙個都可以如果是多個專案,則使用@autowired
需求:由於大型專案中需要使用的bean很多,如果將這些bean寫入配置檔案中,會導致整個配置檔案被別的混亂
思路:需要採用一種方式,告訴spring容器需要建立物件
辦法:
1.開啟包掃瞄:
base-
package=
"pojo" 指定的包路徑
如果包的個數較多,使用
","分割
只要給定了相對應的包路徑,就會掃瞄給定包的全部子孫包
只要開啟包掃瞄,預設開啟屬性註解
預設規則:
如果使用註解的方式建立物件,會根據我的類名自動的生成bean的
id,並且
id為類名首字母小寫.
案例: 類名
id名nba
nbanba
nbanba
nba 規則:
id的生成策略其實根據第二個字母決定,第二個字母如果大寫,則保持類名不變,如果第二個字母小寫,首字母才會小寫.
擴充套件:
1.容器啟動時,首先會
spring的配置檔案
2.根據包掃瞄指定的包路徑
spring會掃瞄當前包下的全部子孫包
3.在掃瞄時如果發現類上還有@component註解,則會根據
spring的規則為其建立物件.將物件建立通過反射建立完成後,存入
spring所維護的map中,key就是類名首字母小寫.value就是生成的物件.
4.如果需要進行物件注入
- 則在建立物件之後,自動的根據註解的匹配規則為其注入正確的物件,如果物件真確注入.則
spring返回正確的物件.
- 如果注入有誤,
spring則會發出報錯資訊.容器啟動失敗.
1.物件建立
2.初始化方法init
3.通過物件完成實際操作
4.物件銷毀
配置檔案方式
init負責物件的初始方法
destroy負責物件的銷毀方法
註解方式
@postconstruct
//構造方法之後執行
@predestroy
//容器銷毀之前
scope(value=」protptype」)//物件的單利和多例
lazy(true) //類的懶載入component //表是當前類交給spring容器管理controller //控制層 註解
service //業務層註解
repository //持久層的主機
功能上和@component沒有任何差別,為了讓程式設計師程式設計更加的明確,定義的.
案例:
- 問題: 如果乙個介面有多個實現類,則在進行注入的時候會出現找不到那個實現類的異常
總結:為基本型別賦值
1.為基本型別賦值
2.為基本型別動態賦值
為集合賦值
引入頭標籤
在spring配置檔案中定義集合
引入屬性:同樣模仿el表示式進行賦值
Spring學習(二) 註解簡化配置檔案
1.元件掃瞄 spring容器會通過元件掃瞄該包及其子包的所有類,並將有特定註解 通用註解 component named 持久化層元件註解 repostory 業務層元件註解 service 控制層元件註解 controller 的類納入容器進行管理,相當於在配置檔案中配置了 乙個bean元素。以...
spring配置檔案
1 配置檔案的簡化 1 屬性的 property name foo value foovalue value property 簡化為 property name foo value foovalue 2 引用bean property name foo ref bean foobean prope...
spring配置檔案
context annotation config 是用於啟用那些已經在spring容器裡註冊過的bean上面的註解,也就是顯示的向spring註冊 autowiredannotationbeanpostprocessor commonannotationbeanpostprocessor pers...