码迷,mamicode.com
首页 > 编程语言 > 详细

【Java基础】Java注解简单入门

时间:2017-12-30 22:34:33      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:ati   users   his   get   gil   pos   first   xxx   定义   

注解简单来说就是配置,是特别的配置,之前常用的配置文件,可以用注解替换。然后通过反射去获取注解的信息。

如何定义一个注解

你在IDE中新建一个注解定义,是这样的结构的:

package com.nicchagil.exercise.springbootexercise.annotation;

public @interface MyFirstAnnotation {

}

然后大概有4个对上述结构加上一些配置,当然,这配置是以注解的形式添加的=_=!

此注解使用在哪里

此注解会应用的哪里,可通过如下配置:
技术分享图片

保留在什么时候

保留到什么时候:
技术分享图片

注解体现在文档中

@Documented

子类是否继承父类的注解

@Inherited

用反射获取注解的信息

我们先定义一个注解:

package com.nicchagil.exercise.springbootexercise.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;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PojoPostProcessing {
    
    public Class targetClass();
    
    public String[] whiteProperties();

}

使用注解,比如这里我设置到一个方法上:

    @PojoPostProcessing(targetClass=User.class, whiteProperties={"name"})
    public List<User> selectXxx(String id) {
        ......
    }

反射获取注解的信息:

    @Test
    public void test() throws NoSuchMethodException, SecurityException, ClassNotFoundException {
        Class clazz = Class.forName("com.nicchagil.exercise.springbootexercise.service.UserService");
        
        Method method = clazz.getMethod("selectXxx", String.class);
        
        boolean isAnnotationPresent = method.isAnnotationPresent(PojoPostProcessing.class);
        if (!isAnnotationPresent) {
            return;
        }
        
        PojoPostProcessing dpp = (PojoPostProcessing)method.getAnnotation(PojoPostProcessing.class);
        this.logger.info("dpp : {}", dpp);
    }

日志:

dpp : @com.nicchagil.exercise.springbootexercise.annotation.PojoPostProcessing(targetClass=class com.nicchagil.exercise.springbootexercise.mapper.entity.User, whiteProperties=[name])

【Java基础】Java注解简单入门

标签:ati   users   his   get   gil   pos   first   xxx   定义   

原文地址:https://www.cnblogs.com/nick-huang/p/8151259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!