spring通過註解配置
先講下知識點:
使用spring註解後需要在spring配置中配置掃描元件
在classpath中掃描元件
1元件掃描(component scanning):Spring能夠從classpath下自動掃描,偵測和例項化具有特定註解的元件
特定元件包括:
@Component:基本註解,標識了一個受Spring管理的元件
@Respository:標識持久層元件
@Service:標識服務層(業務層)元件
@Controller:標識表現層元件
對於掃描到的元件,Spring有預設的命名策略:使用非限定類名,第一個字母小寫,也可以在註解中通過value屬性值標識元件的名稱
當在元件類上使用了特定的註解之後,還需要在Spring的配置檔案中宣告<context:component-scan>:
-base-package屬性指定一個需要掃描的基類包,Spring容器將會掃描這個基類包及其包中的所有類
-當需要掃描多個包時,可以使用逗號分隔
-如果僅希望掃描特定的類而非基包下的所有類,可使用resource-pattern屬性過濾特定的類,例項:
<context:component-scan
base-package="com.test.ceshi.beans"
resource-pattern="autowire/*.class"/>
-<context:include-filter>子節點表示要包含的目標類
-<context:exclude-filter>子節點表示要排除在外的目標類
-<context:component-scan>下可以擁有若干個<context:include-filter>和<context:exclude-filter>子節點
元件裝配
<context:component-scan>元素還會自動註冊AutowiredAnnotationBeanPostProcessor例項,該例項可以自動裝配具有@Autowired和@Resource、@Inject註解的屬性
使用@Autowired自動裝配Bean
@Autowired註解自動裝配具有相容型別的單個bean屬性
1 構造器,普通欄位(即使是非public),一切具有引數的方法都可以應用@Autowired註解
2 預設情況下,所有使用@Autowired註解的屬性都需要被設定,當Spring找不到匹配的bean裝配屬性時,會丟擲異常,若某一屬性允許不被設定,可以設定@Autowired註解的required屬性為false
3 預設情況下,當IOC容器裡存在多個型別相容的bean時,通過型別的自動裝配將無法工作,此時可以在@Qualifier註解裡提供bean的名稱,Spring允許對方法的入參標註@Qualifiter以指定注入bean的名稱
4 @Autowired註解也可以應用在陣列型別的屬性上,此時Spring將會把所有匹配的bean進行自動裝配
5 @Autowired註解也可以應用在集合屬性上,此時spring讀取該集合的型別資訊,然後自動裝配所有與之相容的bean
6 @Autowired註解用在java.util.Map上時,若該Map的鍵值為String,那麼Spring將會自動裝配與之Map值型別警容的bean,此時bean的名稱作為鍵值
使用@Resource或@Inject自動裝配bean
Spring還支援@Resource和@Inject註解,這兩個註解和@Autowired註解的功用類似
@Resource註解要求提供一個bean名稱的屬性,若該屬性為空,則自動採用標註出的變數或方法名作為bean的名稱
@Inject和@Autowired註解一樣也是按型別匹配注入的Bean,但沒有required屬性
建議使用@Autowired註解
以上就是知識點:下面看例項:
先截知識點少的類:
UserRepositoryImpl知識點1
userRepositoryimpl知識點2
相關spring的xml配置檔案,測試時開啟對應註釋就好
總體測試及建的包啥的
相關文章
- spring通過註解註冊bean的方式+spring生命週期SpringBean
- Spring(使用註解配置)Spring
- Spring系列之新註解配置+Spring整合junit+註解注入Spring
- Spring 註解面面通 之 @MatrixVariableSpring
- spring配置redis註解快取SpringRedis快取
- Spring Boot配置類的註解Spring Boot
- Spring零配置之@Configuration註解詳解Spring
- Spring基於註解的IoC配置Spring
- Spring基於註解的aop配置Spring
- 深入學習Spring框架(二)- 註解配置Spring框架
- Spring Boot 自動配置之組合註解Spring Boot
- Spring Boot 自動配置之條件註解Spring Boot
- Spring 常用的註解以及對應 XML 配置詳解SpringXML
- Spring註解Spring
- 詳解Dart中如何通過註解生成程式碼Dart
- Spring Boot 自動配置之@Enable* 與@Import註解Spring BootImport
- spring基於註解配置實現事務控制Spring
- 【Spring註解】事務註解@TransactionalSpring
- 面試官:展開說說,Spring中Bean物件是如何通過註解注入的?面試SpringBean物件
- SPRING-spring註解整理Spring
- 死磕Spring之AOP篇 - Spring AOP註解驅動與XML配置SpringXML
- Spring boot註解Spring Boot
- Spring : @SessionAttributes註解SpringSession
- Spring新註解Spring
- Spring註解大全Spring
- Spring常用註解Spring
- Spring系列之手寫註解與配置檔案的解析Spring
- Spring-Boot專案中配置redis註解快取SpringbootRedis快取
- 系列文章:spring的xml配置是如何對應註解配置的之配置介紹SpringXML
- 【Spring註解驅動開發】自定義TypeFilter指定@ComponentScan註解的過濾規則SpringFilter
- Spring Boot系列十八 Spring AOP + 註解實現統一註解Spring Boot
- SMM(spring +springmvc+mybatis)依賴註解等環境配置SpringMVCMyBatis
- Spring 註解程式設計之模式註解Spring程式設計模式
- Spring: @ModelAttribute註解用法Spring
- Spring-註解注入Spring
- spring註解開發Spring
- spring boot 註解@ComponentSpring Boot
- Spring註解之@ConditionalSpring
- Spring註解?啥玩意?Spring