Spring中有哪些注解


Spring中的注解主要分為兩類:

類級別的注解:如@Component、@Repository、@Controller、@Service以及JavaEE6的@ManagedBean和@Named注解,都是添加在類上面的類級別注解。

類內部的注解:如@Autowire、@Value、@Resource以及EJB和WebService相關的注解等,都是添加在類內部的字段或者方法上的類內部注解。

具體的來說又有以下幾種類型的注解方式:

1.聲明bean的注解
@Component 組件,通用的注解方式

@Service 在業務邏輯層使用(service層)

@Repository 在數據訪問層使用(dao層)

@Controller 在表現層使用,控制器的聲明(C)

2.注入bean的注解
@Autowired:由Spring提供

@Inject:由JSR-330提供

@Resource:由JSR-250提供

都可以注解在set方法和屬性上,推薦注解在屬性上(一目了然,少寫代碼)。

3.java配置類相關注解
@Configuration 聲明當前類為配置類,相當於xml形式的Spring配置(類上)

@Bean 注解在方法上,聲明當前方法的返回值為一個bean,替代xml中的方式(方法上)

@Configuration 聲明當前類為配置類,其中內部組合了@Component注解,表明這個類是一個bean(類上)

@ComponentScan 用於對Component進行掃描,相當於xml中的(類上)

@WishlyConfiguration 為@Configuration與@ComponentScan的組合注解,可以替代這兩個注解

4.切面(AOP)相關注解
Spring支持AspectJ的注解式切面編程。

@Aspect 聲明一個切面(類上)

使用@After、@Before、@Around定義建言(advice),可直接將攔截規則(切點)作為參數。

@After 在方法執行之后執行(方法上) @Before 在方法執行之前執行(方法上) @Around 在方法執行之前與之后執行(方法上)

@PointCut 聲明切點

在java配置類中使用@EnableAspectJAutoProxy注解開啟Spring對AspectJ代理的支持(類上)

5.@Bean的屬性支持
@Scope 設置Spring容器如何新建Bean實例(方法上,得有@Bean)

其設置類型包括:

· Singleton (單例,一個Spring容器中只有一個bean實例,默認模式),

· Protetype (每次調用新建一個bean),

· Request (web項目中,給每個http request新建一個bean),

· Session (web項目中,給每個http session新建一個bean),

· GlobalSession(給每一個 global http session新建一個Bean實例)

@StepScope 在Spring Batch中還有涉及

@PostConstruct 由JSR-250提供,在構造函數執行完之后執行,等價於xml配置文件中bean的initMethod

@PreDestory 由JSR-250提供,在Bean銷毀之前執行,等價於xml配置文件中bean的destroyMethod


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM