标签:18C ret none ring str lan value not pen
一、定义注解
1. 用@Interface定义一个注解,比如名字叫做:RpcService,里面的方法只写声明
说明:
在定义这个注解前面需要加上这些注解:
@Target({ElementType.TYPE})//注解用在的位置
@Retention(RetentionPolicy.RUNTIME)//注解的生命周期
@Component
整体代码如下:
1 import org.springframework.stereotype.Component;
2
3 import java.lang.annotation.ElementType;
4 import java.lang.annotation.Retention;
5 import java.lang.annotation.RetentionPolicy;
6 import java.lang.annotation.Target;
7
8 @Target({ElementType.TYPE})//注解用在的位置
9 @Retention(RetentionPolicy.RUNTIME)//注解的生命周期
10 @Component
11 public @interface RpcService {
12 String value();
13 }
二、使用注解
1. 使用注解的类必须实现这个接口ApplicationContextAware
2. 这个接口强制实现的方法是:setApplicationContext(ApplicationContext ctx)
3. 获取这个注解的所有类
Map<String,Object> serviceBeanMap = ctx.getBeansWithAnnotation(RpcService.class);
4. 拿到对象
serviceBeanMap.values()
5. 拿到注解上的参数
String value = serviceBean.getClass().getAnnotation(RpcService.class).value();
标签:18C ret none ring str lan value not pen
原文地址:https://www.cnblogs.com/xiatianyu/p/9094971.html