Java注解与Spring注解

2019-05-21  本文已影响0人  沐兮_d64c

1,元注解与自定义注解

1)java.lang.annotation包中包含了所有定义自定义注解所需要的元注解和接口。如java.lang.annotation.Annotation接口,被所有注解自动继承,类似Object

image.png
2)定义自定义注解需要的元注解
@Documented :此注解会被javadoc工具提取成文档
@Retention : 指定注解被保留到什么时候
image.png
@Target : 指明适用此注解的上下文
image.png
@Inherited:注解被自动继承
3)自定义注解与使用
Spring的@Autowired注解
image.png
jdk的@Resource注解
image.png

2,自定义注解的使用

1)自定义注解与反射息息相关
类的Class对象中,提供判断注解是否存在的isAnnotationPresent方法

image.png
2)自定义注解声明成员
成员声明与(无参数、无异常的)接口方法类似。
如String name() default "" 为自定义注解声明了name成员,如果只有一个成员,最好命名为value。

3,Spring注解解析

1)Spring通过向容器注册BeanPostProcessor,来处理@Autowired、@Resource等注解的。
2)<context:annotation-config>默认注册的4种beanPostProcessor。
CommonAnnotationBeanPostProcessor : 主要处理@Resource、@PostConstruct和@PreDestroy注解的实现。

image.png
image.png
AutowiredAnnotationBeanPostProcessor:主要处理主要处理@Autowired、@Value、@Lookup和@Inject注解的实现。
image.png
image.png
RequiredAnnotationBeanPostProcessor:主要处理@Required注解的实现。
PersistenceAnnotationBeanPostProcessor:主要解析和处理@PersistenceUnit、@PersistenceContext注解。
上一篇下一篇

猜你喜欢

热点阅读