spring

Spring注解原理探索(三)

2017-03-01  本文已影响228人  ibyr

之 Java如何识别注解

关键词:Java 反射
java.lang.reflect 包,实现反射功能的工具类。
注解处理类库:java.lang.reflect.AnnotatedElement。

程序通过反射获取了某个类的AnnotatedElement对象之后, 程序就可以调用该对象如下的方法来访问Annotation的信息:

Returns annotations that are <em>present</em> on this element.

Returns true if an annotation for the specified type
is <em>present</em> on this element, else false.

Returns this element's annotation for the specified type if
such an annotation is <em>directly present</em>, else null.

为了处理注解,** 注解处理器 **做3件事情:

前提假设:
我们已经自定义注解类,如 @RequestMapping 注解类,
并在合适的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处理注解的源码分析
[待续]

上一篇 下一篇

猜你喜欢

热点阅读