首页 > 其他分享 >注解

注解

时间:2023-08-22 13:33:14浏览次数:53  
标签:String TestProvider testProvider public 注解 class

1.元注解

  • @Target 说明修饰对象范围
  • @Retention : 定义该注解被保留的时间长短,SOURCE 源文件保留,CLASS class文件保留,RUNTIME 运行时保留
  • @Documented :描述javadoc
  • @Inherited : 阐述了某个被标注的类型是被继承的

2.注解处理

  • TestProvider注解
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TestProvider {

    public int id() default -1;
    public String name() default "";
    public String address() default "";
}
  • Apple
public class Apple {
    @TestProvider(id = 1,name = "lwx",address = "aaa")
    private String testProvider;

    public String getTestProvider() {
        return testProvider;
    }

    public void setTestProvider(String testProvider) {
        this.testProvider = testProvider;
    }
}
  • Util
public class Util {
    public static void getTest(Class<?> clazz){
        String str = "lwx";
        Field[] fields = clazz.getDeclaredFields();
        for (Field field : fields){
            if (field.isAnnotationPresent(TestProvider.class)){
                TestProvider testProvider = (TestProvider) field.getAnnotation(TestProvider.class);
                str = testProvider.id() + testProvider.name();
                System.out.println(str);
            }
        }
    }

    public static void main(String[] args) {
        Util.getTest(Apple.class);
    }
}

标签:String,TestProvider,testProvider,public,注解,class
From: https://www.cnblogs.com/lwx11111/p/17648297.html

相关文章

  • SpringBoot复习:(40)@EnableConofigurationProperties注解的用法
    一、配置文件:server.port=9123二、配置类:packagecn.edu.tju.config;importcom.mysql.fabric.Server;importorg.springframework.boot.autoconfigure.web.ServerProperties;importorg.springframework.boot.context.properties.EnableConfigurationProperties;importorg.......
  • SpringBoot复习:(55)在service类中的方法上加上@Transactional注解后,Spring底层是怎么生
    SpringBootrun方法代码如下:可以看到它会调用refreshContext方法来刷新Spring容器,这个refreshContext方法最终会调用AbstractApplicationContext的refresh方法,代码如下如上图,refresh方法最终会调用finisheBeanFactoryInitialization方法,代码如下:从上图可以看出,它最终会调用preIn......
  • Knife4j常用注解
    Knife4j注解说明1.@Api添加在控制器类上,通过此注解的tags属性,可以指定模块名称,并且,在指定名称时,建议在名称前添加数字作为序号,Knife4j会根据这些数字将各模块升序排列,例如:@Api(value="提供商品添加、修改、删除及查询的相关接⼝",tags="01.商品管理")2. @ApiOpearatio......
  • 二、原生 API 的注解使用示例
    [email protected](METHOD)@Retention(RUNTIME)public@interfaceRequestLine{//请求方式+uriStringvalue();//斜线是否base64编码booleandecodeSlash()defaulttrue;//默认支持URL传多值,是通过key来传输的。形如:key=value1&......
  • SpringBoot使用自定义注解实现数据脱敏
    我们在日常开发中,经常有一些数据中的部分需要隐藏起来,达到数据安全的目的,这一个过程就是数据脱敏。一、自定义数据脱敏枚举类packagecom.example.springbootdemo.enums;importlombok.Getter;importjava.util.function.Function;/***数据脱敏策略枚举*/@Getterpubli......
  • 条件注解@Conditional
    定义:在spring框架中用于根据特定条件决定是否创建或者注册某个bean或配置的注解,他们可以根据运行时环境,配置属性,或其他条件来动态的控制bean的创建或者注册。@Conditional注解定义:基本上所有的条件注解,都是基于该注解进行的扩展。此注解从Spring4.0之后开始使用,一般用来限制配置类......
  • @NotNull和@NonNull注解得区别
    今天敲代码得时候遇到了一个警告Notannotatedparameteroverrides@NonNullparameter 这个警告得原因是你这个类继承得那个类参数被@NonNull注解标记了,但是你实现类没有使用这个注解。我产生得地方是我的类继承ItemProcressor重写它得process方法得时候这时候,就产生疑问@No......
  • @transcational注解
    @transcational注解能用在任何springboot项目的组件的方法里也就是被@component修饰的类常见的service类的@service注解内部就有@component注解,所以可以直接使用@transcational注解进行回滚微服务就是@globaltranscational具体使用可能要配合异步线程或者一些异步消息时处......
  • (Java实体类比表字段多处理方案)注解忽略实体类属性
    背景实体类多添加了几个字段用于查询,如果项目中使用了mybatis或mybatisplus会导致找不到表中字段的错误Causedby:java.sql.SQLSyntaxErrorException:Unknowncolumn'create_start_time'in'fieldlist'解决项目中使用mybatisimportorg.springframework.data.annotat......
  • Java自定义注解
    注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。本文将通过示例详解Java如何实现自定义注解,需要的可以参考一下 −目录概念作用JDK中预定义的一些注解注解生成文档案例自定义注解格式本质属......