前言
spring的一個(gè)核心功能是ioc,就是將bean初始化加載到容器中,bean是如何加載到容器的,可以使用spring注解方式或者spring xml配置方式。
spring注解方式減少了配置文件內(nèi)容,更加便于管理,并且使用注解可以大大提高了開發(fā)效率!
該篇文章主要做下注解的筆記,以免我經(jīng)常忘記~
先給個(gè)demo
1
2
3
4
5
6
7
8
9
10
|
package com.nuofankj.springdemo.resource; import java.lang.annotation.*; @target (elementtype.type) @retention (retentionpolicy.runtime) @documented public @interface resourceconfig { } |
先從@target說起,此處直接查看源碼并加上注釋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
public enum elementtype { /** 類, 接口 (包括注釋類型), 或 枚舉 聲明 */ type, /** 字段聲明(包括枚舉常量) */ field, /** 方法聲明(method declaration) */ method, /** 正式的參數(shù)聲明 */ parameter, /** 構(gòu)造函數(shù)聲明 */ constructor, /** 局部變量聲明 */ local_variable, /** 注釋類型聲明 */ annotation_type, /** 包聲明 */ package , /** * 類型參數(shù)聲明 */ type_parameter, /** * 使用的類型 */ type_use } |
很明顯@target 這個(gè)枚舉提供了一個(gè)簡單的分類,即可能出現(xiàn)在java程序中的位置。
接下來查看@retention,同樣查看源碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public enum retentionpolicy { /** * 注釋只在源代碼級別保留,編譯時(shí)被忽略 */ source, /** * 注釋將被編譯器在類文件中記錄但在運(yùn)行時(shí)不需要jvm保留。這是默認(rèn)的行為 */ class , /** *注釋將被編譯器記錄在類文件中,運(yùn)行時(shí)保留vm,因此可以反讀。 */ runtime } |
意思便是:retentionpolicy這個(gè)枚舉類型的常量描述了保留注釋的各種策略,即指定注釋要保留多長時(shí)間。
最后一個(gè)是@documented,這個(gè)表明這個(gè)注解javadoc是記錄的。即如果一個(gè)類型聲明被注釋了文檔化,它的注釋成為公共api的一部分。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對服務(wù)器之家的支持。
原文鏈接:http://myblog.lixifan.cn/article?id=bN2bmhUJgiA67PchlDc7