Java 开发中,常用的注解整理

2023-12-28 13:31:15

一、元注解(用来修饰注解的注解)

JDK 1.5开始, Java增加了对元数据(MetaData)的支持,提供了4个标准的用来对注解类型进行注解的注解类,我们称之为 meta-annotation(元注解)

@Target(ElementType.xxx)

描述注解的使用范围(即:被修饰的注解可以用在什么地方)
ElementType 的取值有:

  1. CONSTRUCTOR:用于描述构造器
  2. FIELD:用于描述域
  3. LOCAL_VARIABLE:用于描述局部变量
  4. METHOD:用于描述方法
  5. PACKAGE:用于描述包
  6. PARAMETER:用于描述参数
  7. TYPE:用于描述类、接口(包括注解类型)或enum声明

@Retention(RetentionPolicy.xxx)

描述注解的生命周期(即:被修饰的注解被保留到何时)
RetentionPolicy 的取值有:

  1. SOURCE:在源文件中有效(即源文件保留)
  2. CLASS:在class文件中有效(即class保留)
  3. RUNTIME:在运行时有效(即运行时保留)

@Documented

会被 Javadoc 工具动态提取成文档

@Inherited

允许自雷继承父类中的注解

二、Spring 全家桶中相关注解

SpringMVC 注解

IOC 注解

1、Spring 模式注解

注解描述起始版本
@Component通用组件模式注解,是所有组件类型注解的元注解Spring 2.5
@Repository数据仓库模式注解,最初由域驱动设计(Evans,2003)定义为"模拟对象集合的封装存储、检索和搜索行为的机制"Spring 2.0
@Service服务类组件模式注解Spring 2.5
@ControllerWeb控制器组件模式注解Spring 2.5
@Configuration配置类模式注解Spring 3.0

2、Spring 容器装配注解

注解描述起始版本
@ImportResource导入指定路径的配置文件,与XML元素作用相同Spring 2.5
@Import导入Configuration配置类Spring 2.5
@ComponentScan扫描指定包下标注Spring模式注解的类Spring 3.1
@Bean向容器中注册Bean,与XML元素作用相同Spring 3.0

3、Spring 依赖注入注解

注解描述起始版本
@AutowiredBean依赖注入,支持多种注入方式,例如标注在构造器、普通方法、字段等Spring 2.5
@Qualifier与@Autowired配合使用,支持细粒度的Bean注入Spring 2.5
@Value多用于注入外部化配置,例如xx.properties中的user.name=markus,可以通过@Value((“${user.name}”))注入到指定的字段中Spring 3.0

4、Spring 条件注解

注解描述起始版本
@Profile基于配置条件的注解,常用与指定环境,在环境符合条件下注册Spring 3.1
@Conditional只有当所有指定条件都匹配时,组件才有资格注册,条件是可以在注册bean定义之前以编程方式确定的任何状态Spring 4

5、JSR 注解

注解描述起始版本
@Inject与@Autowired作用相同用于Bean注入Spring 2.5
@Resource与@Autowired作用相同用于Bean注入Spring 2.5
@PostConstruct标注在自定义方法上,在Bean初始化阶段执行Spring 2.5
@PreDestroy标注在自定义销毁前执行方法上,在Bean销毁前执行Spring 2.5

AOP 注解

启动类注解

缓存注解

事务注解

@TransactionalEventListener 事务监听注解

参考文章:@TransactionalEventListener的使用和实现原理

其他 Spring 注解

@SpringBootApplication

@RestController

@RequestMapping

@GetMapping

@PostMapping

@PutMapping

@DeleteMapping

@RequestParam

@PathVariable

@RequestBody

@ResponseBody

@Value

@Bean

@Import

@Conditional

@Profile

@PropertySource

@Qualifier

@ExceptionHandler

@ResponseStatus

@ControllerAdvice

@CrossOrigin

@Async

@Cacheable

@CacheEvict

@CachePut

@Transactional

@EnableTransactionManagement

@EnableAspectJAutoProxy

@Aspect

@Pointcut

@Before

@After

@Around

@AfterReturning

@AfterThrowing

@Order

@Slf4j

@Data

@NoArgsConstructor

@AllArgsConstructor

@Builder

@EqualsAndHashCode

@ToString

@Getter

三、常用的插件注解

四、Javadoc 注解

Javadoc 是一种文档注释,目前支持三种注释。分别是单行注释、多行注释和文档注释。文档注释以 /** 开头,以 */ 结束,可以通过 Javadoc 生成 API 帮助文档,Java帮助文档主要用来说明类,成员变量和方法的功能。

文档注释只放在类、接口、成员变量、方法之前,因为 Javadoc 只处理这些地方的文档注释,而忽略其他地方的文档注释。

Javadoc 标签

Javadoc 工具可以识别文档注释中的一些特殊标签,这些标签一般以@开头,后跟一个指定的名字,有的也以{@开头,以}结束。Javadoc 可以识别的标签如下表所示:

标签描述示例
@author标识一个类的作者,一般用于类注释@author description
@deprecated指名一个过期的类或成员,表明该类或方法不建议使用@deprecated description
{@docRoot}指明当前文档根目录的路径Directory Path
@exception可能抛出异常的说明,一般用于方法注释@exception exception-name explanation
{@inheritDoc}从直接父类继承的注释Inherits a comment from the immediate surperclass.
{@link}插入一个到另一个主题的链接{@link name text}
{@linkplain}插入一个到另一个主题的链接,但是该链接显示纯文本字体Inserts an in-line link to another topic.
@param说明一个方法的参数,一般用于方法注释@param parameter-name explanation
@return说明返回值类型,一般用于方法注释,不能出现再构造方法中@return explanation
@see指定一个到另一个主题的链接@see anchor
@serial说明一个序列化属性@serial description
@serialData说明通过 writeObject() 和 writeExternal() 方法写的数据@serialData description
@serialField说明一个 ObjectStreamField 组件@serialField name type description
@since说明从哪个版本起开始有了这个函数@since release
@throws和 @exception 标签一样.The @throws tag has the same meaning as the @exception tag.
{@value}显示常量的值,该常量必须是 static 属性。Displays the value of a constant, which must be a static field.
@version指定类的版本,一般用于类注释@version info

五、其他注解

@ConfigurationProperties(“xxx”)

  • 作用:将配置文件中的属性,跟 Bean 动态绑定。需要跟 @Component注解或是@Component子类注解 配合使用
  • 作用范围:

@SuppressWarnings

  • 简介:java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上。
  • 作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。
  • 使用:
  • 示例:
    • @SuppressWarnings(“unchecked”):忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
    • @SuppressWarnings(“serial”):如果编译器出现这样的警告信息:The serializable class WmailCalendar does notdeclare a static final serialVersionUID field of type long
      使用这个注释将警告信息去掉。
    • @SuppressWarnings(“unchecked”, “deprecation”):告诉编译器同时忽略unchecked和deprecation的警告信息。
    • @SuppressWarnings(value={“unchecked”, “deprecation”}):等同于 @SuppressWarnings(“unchecked”, “deprecation”)

文章来源:https://blog.csdn.net/qq_34377273/article/details/135266812
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。