曾經的xml配置:
<如果使用註解, 但沒有匯入以下jar包bean
id="accountservice"
class
="com.itheima.service.impl.accountserviceimpl"
scope
=""init-method
=""destroy-method
="">
<
property
name
=""value
=""| ref
="">
property
>
bean
>
或者在xml配置檔案中沒有配置以下內容(特別注意,頭配置也有改動
) 時, 無法成功建立bean
<它們的作用就和在xml配置檔案中編寫乙個標籤實現的功能是一樣的context:component-scan
base-package
="com.itheima"
>
context:component-scan
>
@component :
作用: 用於把當前類物件存入spring容器中
屬性:value: 用於指定bean的id . 當我們不寫時,他的預設值是當前類名,且首字母改小寫
@component(value="accountservice") 如果value只有乙個 可以寫成@component("accountservice")
@controller 一般用於表現層
@service 一般用於業務層
@repository 一般用於持久層
以上三個註解的作用與component是一摸一樣的.
他們三個是spring框架為我們提供明確的三層使用的註解,使我們的三層物件更加清晰
它們的作用就和在xml配置檔案中編寫乙個標籤實現的功能是一樣的
@autowired
作用: 自動按照型別注入. 只要容器中有唯一的乙個bean物件型別和要注入的變數型別匹配, 就可以注入成功
如果ioc容器中沒有任何bean的型別和要注入的變數型別匹配,則報錯。
如果ioc容器中有多個型別匹配時:
先按照型別圈定出來匹配的範圍
接下來會使用變數名稱作為bean的id在圈定出來的範圍中繼續查詢,
如果有匹配的,則注入成功, 如果都不一樣,就報錯
出現位置: 可以是變數上,也可以是方法上
細節: 在使用註解注入時,set方法就不是必須的了 自動按照型別(或某類實現的介面型別)進行匹配
@qualifier
作用: 在按照型別注入的基礎之上 再按照名稱注入.
它在給類成員注入時不能單獨使用,
但是在給方法引數注入時可以單獨使用
屬性: value:用於指定注入bean的id
在給類成員注入時不能單獨使用, 必須和autowired配合使用
作用: 直接按照bean的id注入. 它可以獨立使用
屬性: name 用於指定beanid
*****以上三個注入都只能注入其他bean型別的資料,*****
*****而基本型別和string型別無法使用上述註解實現*****
@value
作用: 用於注入基本型別和string型別的資料
屬性: value: 用於指定資料的值. 它可以使用spring中的spel(spring的el表示式)
sqel的寫法: $
它們的作用就和在bean標籤中使用scope屬性實現的功能是一樣的
@scope
作用: 用於指定bean的作用範圍
屬性: value: 指定範圍的取值. 常用的兩個singleton prototype 預設單例
它們的作用就和在bean標籤中使用init-method和destroy-methode的作用是一樣的
@predestroy
作用: 用於指定銷毀方法
@preconstruct
作用: 用於指定初始化方法
spring基於註解的Ioc配置
賬戶的業務層實現類 曾經xml的配置 scope init method destory method 用於建立物件的 他們的作用就和在xml配置檔案中編寫乙個標籤實現的功能是一樣的 component 作用 用於把當前類物件存入spring容器中 屬性 value 用於指定bean的id。當我們不...
Spring基於註解的IOC配置
他們的作用就和在xml配置檔案中編寫乙個標籤實現的功能是一樣的 component 用於把當前類物件存入spring類容器中 屬性 value 用於指定bean的id,當我們不寫它的預設值是當前類名且首字母改小寫 controller 一般用在表現層 service 一般用在業務層 reposito...
spring學習之基於註解的ioc
component 建立物件和xml配置的bean標籤一樣 autowrite 用於注入資料 和bean標籤的property一樣 qualifier 根據component的id獲取bean物件 autowired qualifier resoure 就是前面兩個的結合 resource name...