自定义注解

/** * 日志注解 */@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface Log {    String value() default "";}

应用注解的类

@Component@Log("小明呀")public class TargetclassTest {    @Log("小明")    public void getMoney(String name, String money) {//        int i = 1/0;        System.out.println(name + "有" + money + "元");    }}

获取办法上的注解

    /**     * 通过反射获取办法上的注解     */    @Test    public void reflectionAnnotationMethod() throws NoSuchMethodException {        Class clazz = TargetclassTest.class;        Method getMoney = clazz.getDeclaredMethod("getMoney", String.class, String.class);        if (getMoney.isAnnotationPresent(Log.class)) {            Log declaredAnnotation = getMoney.getDeclaredAnnotation(Log.class);            System.out.println(declaredAnnotation.value());        }    }

获取类上的注解

    /**     * 通过反射获取类上的注解     */    @Test    public void reflectionAnnotationClass() throws NoSuchMethodException {        Class clazz = TargetclassTest.class;        if (clazz.isAnnotationPresent(Log.class)) {            Log declaredAnnotation = (Log) clazz.getDeclaredAnnotation(Log.class);            System.out.println(declaredAnnotation.value());        }    }