注釈のまとめについて
一、java内蔵注記
1,@Targetはこの注釈がどこに用いられるかを示し,可能なElemenetTypeパラメータは:ElemenetType.CONTRUCTORコンストラクタはElemenetTypeを宣言した.FIELDドメイン宣言(enumインスタンスを含む)ElemenetType.LOCAL_VARIABLEローカル変数宣言ElemenetType.METHODメソッドはElemenetTypeを宣言する.PACKAGEパッケージはElementTypeを宣言します.PARAMETERパラメータ宣言ElemenetType.TYPEクラス、インタフェース(注釈タイプを含む)またはenum宣言2、@Retentionは、注釈情報をどのレベルで保存するかを示す.オプションのRetentionPolicyパラメータには、RetentionPolicy.SOURCE注記はコンパイラによってRetentionPolicyを破棄する.CLASS注記はclassファイルで使用可能ですが、VMによってRetentionPolicyが破棄されます.RUNTIME VMは、実行期間中もコメントを保持するため、反射機構によって注釈の情報を読み取ることができる.3,@Documentedこの注記をjavadocに含める4,@Inheritedは子クラスが親クラスの注記を継承することを許可する5,@Deprescatedは現在の要素が使用に賛成しないことを示す.6,@Overrideは現在のメソッドが親を上書きするメソッドであることを示す.7、@SuppressWarningsは、不適切なコンパイラ警告メッセージを閉じることを示します.
二、Spring内蔵注記
1,@Autowired注記
byTypeの方法で自動的に組み立てる.クラスのメンバー変数、メンバーメソッド、および構築子に適用できます.デフォルトで@Autowired注記を使用して自動注入を行う場合、Springコンテナで一致する候補Beanの数は1つのみである必要があります.required=falseをオプションに設定できます.複数のタイプの一致するbeanが存在する場合、@Qualifier注記を使用して、アセンブリするbeanを明確に指定できます.
2、@Qualifier注記
@Qualifier(「Beanの名前」)注入Beanの名前を指定します.クラスのメンバー変数、メソッドのパラメータ、およびサブを構築するパラメータにのみ使用できます.@Autowiredと併用すると、自動アセンブリのポリシーはbyNameになります.
注記の使用例:
カスタム修飾子注記:
3、@Component注記
@Component("Beanの名前")は、クラスが管理されているBeanであることを注記します.既定では@Componentで定義されたBeanはsingletonであり、他のスコープのBeanを使用する必要がある場合は@Scopeコメントでターゲットを達成できます.
4、@Scope注記
@Scope("Beanの役割範囲")は、@Scopeによって指定された役割ドメインに注記されます.BeanBeanの役割範囲はsingleton、prototypeなどです.
5、@Controller注記
6、@Service注記
7、@Repository注記
三、JSR-250仕様の注記(common-annotations.jarパッケージのサポートが必要)
1、@Resource注記
@Resource(name="person")nameプロパティは、注入されたBeanの名前を指定するために使用されます.
@Resource(type=Person.class)typeプロパティは、注入されたBeanのタイプを指定します.
2、@PostContsuct注記
Beanのinit-methodプロパティと同様に、管理されているBeanの初期化方法を指定します.
3、@PreDestory注記
Beanのdestory-methodプロパティと同様の役割を果たす、管理されたBeanのプロファイル方法を指定します.
四、AspectJ内蔵注記
1,@Targetはこの注釈がどこに用いられるかを示し,可能なElemenetTypeパラメータは:ElemenetType.CONTRUCTORコンストラクタはElemenetTypeを宣言した.FIELDドメイン宣言(enumインスタンスを含む)ElemenetType.LOCAL_VARIABLEローカル変数宣言ElemenetType.METHODメソッドはElemenetTypeを宣言する.PACKAGEパッケージはElementTypeを宣言します.PARAMETERパラメータ宣言ElemenetType.TYPEクラス、インタフェース(注釈タイプを含む)またはenum宣言2、@Retentionは、注釈情報をどのレベルで保存するかを示す.オプションのRetentionPolicyパラメータには、RetentionPolicy.SOURCE注記はコンパイラによってRetentionPolicyを破棄する.CLASS注記はclassファイルで使用可能ですが、VMによってRetentionPolicyが破棄されます.RUNTIME VMは、実行期間中もコメントを保持するため、反射機構によって注釈の情報を読み取ることができる.3,@Documentedこの注記をjavadocに含める4,@Inheritedは子クラスが親クラスの注記を継承することを許可する5,@Deprescatedは現在の要素が使用に賛成しないことを示す.6,@Overrideは現在のメソッドが親を上書きするメソッドであることを示す.7、@SuppressWarningsは、不適切なコンパイラ警告メッセージを閉じることを示します.
二、Spring内蔵注記
1,@Autowired注記
byTypeの方法で自動的に組み立てる.クラスのメンバー変数、メンバーメソッド、および構築子に適用できます.デフォルトで@Autowired注記を使用して自動注入を行う場合、Springコンテナで一致する候補Beanの数は1つのみである必要があります.required=falseをオプションに設定できます.複数のタイプの一致するbeanが存在する場合、@Qualifier注記を使用して、アセンブリするbeanを明確に指定できます.
2、@Qualifier注記
@Qualifier(「Beanの名前」)注入Beanの名前を指定します.クラスのメンバー変数、メソッドのパラメータ、およびサブを構築するパラメータにのみ使用できます.@Autowiredと併用すると、自動アセンブリのポリシーはbyNameになります.
注記の使用例:
public class Person {
private Long id;
private String name;
private Address address;
public Person(){
}
public Person(Long id, String name){
this.id = id;
this.name = name;
}
@Autowired(required=false)
public void setAddress(@Qualifier("address2")Address address) {
this.address = address;
}
}
<!-- bean。 -->
<context:component-scan base-package="com.cjm"/>
<bean id="address1" class="com.cjm.model.Address" p:city="gz1" p:zipCode="111"/>
<bean id="address2" class="com.cjm.model.Address" p:city="gz2" p:zipCode="222"/>
<bean id="person" class="com.cjm.model.Person">
<constructor-arg index="0" value="111"/>
<constructor-arg index="1" value="cjm"/>
</bean>
カスタム修飾子注記:
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface MyQulifier {
String value();
}
public class Person {
private Long id;
private String name;
private Address address;
public Person(){
}
public Person(Long id, String name){
this.id = id;
this.name = name;
}
@Autowired
public void setAddress(@MyQulifier("a2")Address address) {
this.address = address;
}
}
<bean id="address1" class="com.cjm.model.Address" p:city="gz1" p:zipCode="111">
<qualifier type="com.cjm.annotation.MyQulifier" value="a1"/>
</bean>
<bean id="address2" class="com.cjm.model.Address" p:city="gz2" p:zipCode="222">
<qualifier type="com.cjm.annotation.MyQulifier" value="a2"/>
</bean>
3、@Component注記
@Component("Beanの名前")は、クラスが管理されているBeanであることを注記します.既定では@Componentで定義されたBeanはsingletonであり、他のスコープのBeanを使用する必要がある場合は@Scopeコメントでターゲットを達成できます.
4、@Scope注記
@Scope("Beanの役割範囲")は、@Scopeによって指定された役割ドメインに注記されます.BeanBeanの役割範囲はsingleton、prototypeなどです.
5、@Controller注記
6、@Service注記
7、@Repository注記
三、JSR-250仕様の注記(common-annotations.jarパッケージのサポートが必要)
1、@Resource注記
@Resource(name="person")nameプロパティは、注入されたBeanの名前を指定するために使用されます.
@Resource(type=Person.class)typeプロパティは、注入されたBeanのタイプを指定します.
2、@PostContsuct注記
Beanのinit-methodプロパティと同様に、管理されているBeanの初期化方法を指定します.
3、@PreDestory注記
Beanのdestory-methodプロパティと同様の役割を果たす、管理されたBeanのプロファイル方法を指定します.
四、AspectJ内蔵注記