当前位置: 首页 >服务端 > spring注解原理剖析

spring注解原理剖析

  注解(annotation)其实是一种接口,通过java的反射机制相关的API来访问annotation信息。Java语言解释器会在工作时忽略这些annotation,因此在JVM中这些annotation是不会被处理的,只能通过配套的工具才能对这些annotation类型的信息进行访问和处理。

  annotation的类型使用关键字@interface。它继承了java.lang.annotation.Annotation接口,而不是申明了一个interface。

  Annotation类型、方法定义是独特的、受限制的。Annotation类型的方法必须申明为无参数、无异常抛出的。方法后面可以使用default和一个默认数值来申明成员的默认值,null不能作为成员的默认值。

  元注解@Target,@Retention,@Documented,@Inherited

  @Target表示该注解用于什么地方,@Retention表示在什么级别保存改注解信息,@Documented表示将此注解包含在javadoc中,@Inherited表示允许子类继承父类中的注解。

  注解示例:

1 @Target({ElementType.TYPE,ElementType.METHOD})2 @Retention(RetentionPolicy.RUNTIME)3 public @interface NeedLogin{4 boolean value() default true;5 boolean guest() default true;6 }

  解析注解:

1 if(handler instanceof HandlerMethod){2 HandlerMethod method  = (HandlerMethod)handler;3 NeedLogin needLogin = method.getMethodAnnotation(NeedLogin.class);4 if(needLogin == null){5 needLogin = method.getMethod().getDeclaringClass().getAnnotation(NeedLogin.class);  7 }  8 }

  注解本身不做任何事情,只是像xml文件一样起到配置作用。注解代表的是某种业务意义,spring中@Resource注解简单解析:首先解析类的所有属性,判断属性上面是否存在这个注解,如果存在这个注解,再根据搜索规则来取得这个bean,然后通过反射注入。

作者:matrix.skygirl
来源链接:https://www.cnblogs.com/matrix-skygirl/archive/2012/12/18/2823355.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/117195.html

标签:Spring注解
分享给朋友:

“spring注解原理剖析” 的相关文章