示例:自建的RestController,代码如下
import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 复合注解获取原理
*/
@RestController
public class RestControllerMain {
public static void main(String[] args) {
Annotation[] anns = RestControllerMain.class.getDeclaredAnnotations();
for (Annotation ann : anns) {
Class<? extends Annotation> anc = ann.annotationType();//此处必须使用java.lang.annotation.Annotation的方法
Annotation[] anns2 = anc.getDeclaredAnnotations();
for (Annotation ann2 : anns2) {
System.out.println(ann2.annotationType().getName());
}
}
}
}
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
@interface RestController {
String value() default "something";
}