註解
說明@component
使用在類上用於例項化bean
@controller
使用在web層類上用於例項化bean
@service
使用在service層類上用於例項化bean
@repository
使用在dao層類上用於例項化bean
@autowired
使用在字段上用於根據型別依賴注入
@qualifier
結合@autowired一起使用用於根據名稱進行依賴注入
@resource
相當於@autowired+@qualifier,按照名稱進行注入
@value
注入普通屬性
@scope
標註bean的作用範圍
@postconstruct
使用在方法上標註該方法是bean的初始化方法
@predestroy
使用在方法上標註該方法是bean的銷毀方法
這些註解我們可以按照功能 , 大致分為以下四類 :
用於建立物件:作用和xml配置中的標籤的作用是一樣的
用於注入資料:作用和xml配置中的標籤中的標籤作用一樣
用於改變作用範圍:作用和xml配置中的標籤的scope屬性的作用一樣
生命週期相關:作用和xml配置中的標籤的init-method和destroy-method屬性的作用是一樣的
注意: value:指定bean的id。如果不指定value屬性,預設bean的id是當前類的類名。首字母小寫。
<
context:component-scan
base-package
="包路徑"
>
context:component-scan
>
@configuration
作用:
屬性: value:用於指定配置類的位元組碼
@componentscan註解
作用:
用於指定spring在初始化容器時要掃瞄的包。作用和在spring的xml配置檔案中的: 是一樣的。
屬性: basepackages:用於指定要掃瞄的包。和該註解中的value屬性作用一樣。
@bean註解
@bean:用於把當前方法的返回值作為bean物件存入spring的ioc容器中,他的name屬性用於指定bean的id。當不寫時,預設值是當前方法的名稱
@import註解
@import用於匯入其他的配置類
@propertysource註解
作用:
@propertysource用於載入.properties檔案中的配置。例如我們配置資料來源時,可以把連線資料庫的資訊寫到properties配置檔案中,就可以使用此註解指定properties配置檔案的位置。
屬性: value:用於指定properties檔案位置。如果是在類路徑下,需要寫上classpath
建立jdbc.properties檔案
jdbc.driver=com.mysql.jdbc.driver
jdbc.url=jdbc:mysql://localhost:3306/spring_02
jdbc.username=
jdbc.password=
使用@propertysource指定配置檔案類中讀取配置檔案
@configuration
@componentscan
("com.boke"
)@propertysource
("classpath:db.properties"
)public
class
beanfactory")
private string driver ;
@value
("$"
)private string url ;
@value
("$"
)private string username ;
@value
("$"
)private string password ;
@bean
(name=
"queryrunner"
)public queryrunner getqueryrunner
(datasource datasource)
@bean
(name=
"datasource"
)public datasource getdatasource()
throws propertyvetoexception
}
@qualifier註解
作用:
用來在形參中為引數取別名
屬性: value:引數的別名
建立配置檔案db.properties
jdbc.driver=com.mysql.jdbc.driver
jdbc.url=jdbc:mysql://localhost:3306/spring_02
jdbc.username=root
jdbc.password=zl
建立配置類springconfig
@configuration
@componentscan
("com.boke"
)@propertysource
("classpath:db.properties"
)public
class
springconfig")
private string driver ;
@value
("$"
)private string url ;
@value
("$"
)private string username ;
@value
("$"
)private string password ;
@bean
(name=
"queryrunner"
)public queryrunner getqueryrunner
(@qualifier
("ds"
) datasource datasource)
@bean
(name=
"ds"
)public datasource getdatasource()
throws propertyvetoexception
}
修改測試類獲取spring容器操作1.匯入spring與junit整合的依賴包
>
>
org.springframeworkgroupid
>
>
spring-testartifactid
>
>
5.0.2.releaseversion
>
dependency
>
2.在單元測試類上新增註解
@runwith
(springjunit4classrunner.
class
)@contextconfiguration
(classes = springconfig.
class
)public
class
userservicetest
}注意:
1. 如果使用註解配置,
@contextconfiguration 應該指定配置類的位元組碼
@contextconfiguration
(classes = springconfig.
class
)2. 如果使用配置檔案,
@contextconfiguration`應該指定配置檔案的位置
@contextconfiguration
(locations =
"classpath:beans.xml"
)
註解配置, @contextconfiguration 應該指定配置類的位元組碼
@contextconfiguration(classes = springconfig.class)
如果使用配置檔案,@contextconfiguration`應該指定配置檔案的位置
@contextconfiguration(locations = 「classpath:beans.xml」)
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配置
他們的作用就和在xml配置檔案中編寫乙個標籤實現的功能是一樣的 component 用於把當前類物件存入spring類容器中 屬性 value 用於指定bean的id,當我們不寫它的預設值是當前類名且首字母改小寫 controller 一般用在表現層 service 一般用在業務層 reposito...