Spring注釈原理探索(三)
1417 ワード
のJavaはどうやって注釈を識別しますか?
キーワード:Java反射java.lang.reflectパッケージ、反射機能を実現するツール類。注釈処理クラス:java.lang.reflect.AnnotatedElement。
プログラムは反射によって、ある種類のAnnotatedElementオブジェクトを取得した後、このオブジェクトを呼び出して、Annotationにアクセスすることができます。 Annotation[]get Annotations() Returns annotations that are present on this element. default boot isAnnotationPresent Returns true if an annotation for the specified type is present on this element,else false. default T get DeclardAnnotation Returns this element's annotation for the specified type if such an annotation is directly present,else null.
注釈を処理するために、**注釈プロセッサ*は3つのことをします。設定ファイルで管理されているbean を読み出す。实例化bean 注釈プロセッサは、インスタンスbeanにおける注釈を取得し、動作する 。
前提前提仮説:私達はすでにカスタムの注釈類を作っています。例えば@Request Mappingの注釈類と適切なbeanに注釈表示をしています。自分の注釈プロセッサを作成します。
キーワード:Java反射java.lang.reflectパッケージ、反射機能を実現するツール類。注釈処理クラス:java.lang.reflect.AnnotatedElement。
プログラムは反射によって、ある種類のAnnotatedElementオブジェクトを取得した後、このオブジェクトを呼び出して、Annotationにアクセスすることができます。
注釈を処理するために、**注釈プロセッサ*は3つのことをします。
前提前提仮説:私達はすでにカスタムの注釈類を作っています。例えば@Request Mappingの注釈類と適切なbeanに注釈表示をしています。自分の注釈プロセッサを作成します。
//
public class ClassPathXMLApplicationContext {
public ClassPathXMLApplicationContext(String configFileName) {
// bean
readXMLConfigFile(configFileName);
// bean
instanceBean();
// bean
registerAnnotationBean();
}
// bean
private void readXMLConfigFile() {
}
// bean
private void instanceBean() {
}
// bean
private void registerAnnotationBean() {
}
}
Springはどのように注釈のスキャン登録を実現しますか?Spring注解の原理を参考にして(四)のSpring処理注解のソースコードを分析してください。