美文网首页spring
Spring注解原理探索(三)

Spring注解原理探索(三)

作者: ibyr | 来源:发表于2017-03-01 16:38 被阅读228次

    之 Java如何识别注解

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

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

    • Annotation[] getAnnotations()

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

    • default boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)

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

    • default <T extends Annotation> T getDeclaredAnnotation(Class<T> annotationClass)

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

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

    • 读取配置文件中管理的bean
    • 实例化bean
    • 注解处理器获取实例bean中的注解并操作

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

    相关文章

      网友评论

        本文标题:Spring注解原理探索(三)

        本文链接:https://www.haomeiwen.com/subject/eeqcgttx.html