Spring基於註解的IOC配置

2022-10-09 11:24:09 字數 2280 閱讀 8488

他們的作用就和在xml配置檔案中編寫乙個標籤實現的功能是一樣的

@component:用於把當前類物件存入spring類容器中

屬性:value——用於指定bean的id,當我們不寫它的預設值是當前類名且首字母改小寫

@controller:一般用在表現層

@service:一般用在業務層

@repository:一般用在持久層

以上三個註解他們的作用與屬性和component是一模一樣的。他們三個是spring框架為我們提供明確的三層使用的註解,使我們的三層物件更加清晰。

配置檔案

<?xml version="1.0" encoding="utf-8"?>

實體類

他們的作用就和在xml配置檔案中的bean標籤中寫乙個標籤的作用是一樣的

@autowired:

作用:自動按照型別注入。主要容器中有唯一的乙個bean物件型別和要注入的變數型別匹配(包括介面匹配),就可以匹配成功,如果ioc容器中沒有任何bean的型別和要注入的變數型別匹配則報錯

如果有多個匹配時,首先按照型別圈定出多個匹配的物件,然後根據變數名作為key,找到bean(若沒有相同的則報錯)。

出現位置:可以是成員變數上,也可以使方法上

細節:不用setter,也可以注入成功

不用setter也可以注入成功的原因:通過資料型別直接去ioc容器中尋找該物件,注入到變數中多個匹配的情況,根據變數名找物件,變數名與ioc的key相同則可以找到,否則會丟擲異常

@qualifier:

作用:在按照類中注入的基礎之上再按照名稱注入。它在給類成員注入時不能單獨使用。但是在給方法引數注入時可以。

屬性:value:用於指定注入bean的id

給類成員注入要與autowired配合

@resource:

作用:直接按照bean的id注入。可以獨立使用

屬性:name:指定bean的id

以上三個注入都只能注入其他bean型別的資料,而基本型別和string型別無法使用上述註解實現

另外,集合型別的注入只能通過xml實現。

@value:

作用:用於注入基本型別和string型別的資料

屬性:value:用於指定資料型別的值。它可以使用spring中spel(也就是spring的el表示式)

spel的寫法:$

他們的作用就和在bean標籤中使用scope屬性的功能是一樣

@scope:

作用:用於指定bean的作用範圍

屬性:value:指定範圍的取值。常用取值:singleton(單例) prototype(多例)

他們的作用就和在bean標籤中使用init-method和destroy-method是一樣的

@predestroy

作用:用於指定銷毀方法

@postconstruct

作用:用於指定初始化方法

spring基於註解的IOC

曾經的xml配置 bean id accountservice class com.itheima.service.impl.accountserviceimpl scope init method destroy method property name value ref property be...

spring基於註解的Ioc配置

賬戶的業務層實現類 曾經xml的配置 scope init method destory method 用於建立物件的 他們的作用就和在xml配置檔案中編寫乙個標籤實現的功能是一樣的 component 作用 用於把當前類物件存入spring容器中 屬性 value 用於指定bean的id。當我們不...

spring學習之基於註解的ioc

component 建立物件和xml配置的bean標籤一樣 autowrite 用於注入資料 和bean標籤的property一樣 qualifier 根據component的id獲取bean物件 autowired qualifier resoure 就是前面兩個的結合 resource name...