1. 程式人生 > >spring之註解(一)概述

spring之註解(一)概述

dsm 的人 src article service 優缺點 中一 auto 數據

Spring的核心是依賴註入(DI),而依賴註入的基礎是依賴信息的配置。這些配置稱之為元數據。

在之前的的學習中。一直採用的是基於xml的配置,這些元數據配置在spring內部被註冊成為BeanDefinition,spring以此為模版創建bean和註入依賴。

從spring 2.0開始,spring依次增加了對註解型元數據配置的支持。自此我們有了第二種配置bean的方式。Spring包括非常多種註解,[email protected]@Compoent,[email protected] @Improt等。

分類

Spring包括了如此多的註解。致使剛開始學習的人對之望而生畏。對當中一些也比較模糊。因此能夠對Spring的註解進行分類。

Spring的xml元數據配置的核心是bean定義、屬性及其依賴的配置,因此也能夠從這個角度對spring註解進行分為下面。首先見下圖:

技術分享

本篇先對這些註解做一下簡單的梳理,然後在興許的文章中,針對後三種做較為具體的說明。

類別概述

以下略微具體的進行說明下各個類別,並列舉出大部分Spring支持的註解。

容器級別

容器級別指的是註解用來配置Spring容器的,相應於SpringXML配置文件,如

@Configuration作用在class上,其內能夠定義非常多Bean

@Import引入其它Configuration

@ComponentScan 自己主動掃描Bean組件配置,和Configuration配合使用

Bean級別

Bean級別指的是被註解標記的對象(類或者方法),會向Spring容器註冊一個BeanDefinition,Spring以此創建Bean實例。

@component 它和其它被其註解的註解 [email protected] 能夠定義一個bean

@Named 和以上類似,來自JSR-330

@Bean [email protected] [email protected] 配合使用

Bean屬性級別

此類別指的是作用於bean的屬性。如是否延遲載入,Scope等。

@Qualifier [email protected]

/* */

@Lazy 延遲載入

@Scope 定義bean的Scope

@Required 能夠標註在Set方法上,說明此方法須要被運行,否則跑出異常,[email protected] 配合使用

@PostConstruct [email protected] 來自於JSR,作用於生命周期

依賴級別

Spring能夠使用這些註解進行依賴註入,一般是自己主動的,或者借助一些輔助信息。

@autowired自己主動依賴註入,有幾種方式,byType,byName等,通常和@ Qualifier配合使用

@Inject 來自JSR-330,和以上類似。JSR-330相關註解

@Resource和以上類似,JSR-250相關註解

@Value 原始類型註入

總結

以上簡單的說明了下Spring支持的註解和其主要的作用,但到眼下為止都是紙上談兵。可是對Spring註解建立整體的印象還是比較重要的。須要註意的是,Spring註解和 XML配置是相輔相成的,各自有優缺點,在實際應用中要依據實際情況來決定。下篇將具體的講述本篇講述的內容。

spring之註解(一)概述