SpringBoot项目中自定义注解的使用

1.定义注解接口

  1. /**
  2. * @Package: com.example.config
  3. * @Description: 定制一个接口
  4. * @author: zfy
  5. * @date: 19/2/23 下午4:20
  6. */
  7. @Documented
  8. @Retention(RUNTIME)
  9. @Target(METHOD)
  10. public @interface MyLog {
  11.    String value() default "日志注解";
  12. }

[^Documented 注解]: Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中 [^Inherited 注解]: 它指明被注解的类会自动继承. 更具体地说,如果定义注解时使用了 @Inherited 标记,然后用定义的注解来标注另一个父类, 父类又有一个子类(subclass),则父类的所有属性将被继承到它的子类中

  • @Target(ElementType.TYPE) //接口、类、枚举、注解
  • @Target(ElementType.FIELD) //字段、枚举的常量
  • @Target(ElementType.METHOD) //方法
  • @Target(ElementType.PARAMETER) //方法参数
  • @Target(ElementType.CONSTRUCTOR) //构造函数
  • @Target(ElementType.LOCAL_VARIABLE)//局部变量
  • @Target(ElementType.ANNOTATION_TYPE)//注解
  • @Target(ElementType.PACKAGE) ///包
  • 1.RetentionPolicy.SOURCE——这种类型的Annotations只在源代码级别保留,编译时就会被忽略

    2.RetentionPolicy.CLASS——这种类型的Annotations编译时被保留,

     在class文件中存在,但JVM将会忽略

  • 3.RetentionPolicy.RUNTIME——这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用.

原文地址:https://www.cnblogs.com/zfyer/p/12334920.html

时间: 2024-10-05 04:56:05

SpringBoot项目中自定义注解的使用的相关文章

Java中自定义注解

前言 随着springboot的流行,以前基于XML的spring配置用的越来越少,JavaConfig形式使用的越来越多,类似于: @Configuration public class AppConfig { @Bean(name="helloBean") public HelloWorld helloWorld() { return new HelloWorldImpl(); } } 可以看出更多的是基于注解(Annotation)实现的,包括springboot的入口类**Ap

SpringBoot 项目中使用Log4j2

Log4j 系列 log4j是apache实现的一个开源日志组件 logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现 log4j2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步.等等),使得日志的吞吐量.性能比log4j 1.x提高10倍,并解决了一些死锁的bug,而且配置更加简单灵活 slf4j是对所有日志框架制定的一种规范.标准.接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要

解决Springboot项目中jpa扫描不到实体的问题

在一些情况下Springboot项目中jpa扫描不到实体.比如默认扫描不到引用的其他项目中定义的实体.导致无法自动创建表. 解决方法,在Application中自定义实体扫描的包 @EntityScan(basePackages = {"com.aaa"}) @SpringBootApplication @EnableDiscoveryClient @ComponentScan(basePackages = {"com.aaa.*"}) @EntityScan(ba

Android项目中自定义顶部标题栏

Android项目中自定义顶部标题栏 下面给大家详细介绍android中自定义顶部标题栏的思路及实现方式 先来图:     思路及实现步骤 1.定义标题栏布局 2.自定义TitleActivity控制标题栏按钮监听 3.在TitleActivity中实现标题栏以下内容切换 首先定义标题栏 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http:/

springBoot项目中的static和templates文件夹

记录是为了更好的成长! 1.static文件中的页面 //这样写不能访问static中index文件夹下的index.html页面 @RequestMapping("index") public String hello() { return "/index/index"; } //这样写才能访问到 @RequestMapping("index") public String hello() { return "/index/index

在SpringBoot项目中添加logback的MDC

在SpringBoot项目中添加logback的MDC 先看下MDC是什么 Mapped Diagnostic Context,用于打LOG时跟踪一个“会话“.一个”事务“.举例,有一个web controller,在同一时间可能收到来自多个客户端的请求,如果一个请求发生了错误,我们要跟踪这个请求从controller开始一步步都执行到了哪些代码.有哪些log的输出.这时我们可以看log文件,但是log文件是多个请求同时记录的,基本无法分辨哪行是哪个请求产生的,虽然我们可以看线程,但线程可能被复

springboot项目中配置self4j

首先,声明一下,springboot项目中默认情况下已经集成了self4J + LogBack. slf4j作为一个接口定义,底层可以有很多实现框架,同时也可以支持别的日志实现或者框架打到sfl4j上.它的实现是基于不同的桥接包.slf4j作为接口定义,下面有很多种实现.实现原理是获取ILoggerFactory时执行初始化,初始化过程绑定实现对象:load出所有实现StaticLoggerBinder的类,然后获取他的单例,后面执行getLogger的时候都是调用这个单例类的方法获取对应有具体

Java实战之路(1):SpringBoot项目中使用Mybatis打印Sql语句

SpringBoot项目中使用Mybatis打印Sql语句 如题,实际项目中使用很多都会用到SpringBoot+Mybatis的经典搭配进行开发,数据库里明明有数据,可是程序运行就是查不到,此时我们在本地Debug时,需要将Mybatis的实际Sql打印出来,看看Sql与我们期望的是否一致,或者将Sql拿到数据库中直接执行,看看结果.这里简单介绍几种实战中的用法. 方法一 properties:在application.properties配置文件中增加如下配置 logging.level.c

在前后端分离的SpringBoot项目中集成Shiro权限框架

项目背景 公司在几年前就采用了前后端分离的开发模式,前端所有请求都使用ajax.这样的项目结构在与CAS单点登录等权限管理框架集成时遇到了很多问题,使得权限部分的代码冗长丑陋,CAS的各种重定向也使得用户体验很差,在前端使用vue-router管理页面跳转时,问题更加尖锐.于是我就在寻找一个解决方案,这个方案应该对代码的侵入较少,开发速度快,实现优雅.最近无意中看到springboot与shiro框架集成的文章,在了解了springboot以及shiro的发展状况,并学习了使用方法后,开始在网上