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

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

  • 一、元注解(用来修饰注解的注解)
    • @Target(ElementType.xxx)
    • @Retention(RetentionPolicy.xxx)
    • @Documented
    • @Inherited
  • 二、Spring 全家桶中相关注解
    • SpringMVC 注解
    • IOC 注解
      • 1、Spring 模式注解
      • 2、Spring 容器装配注解
      • 3、Spring 依赖注入注解
      • 4、Spring 条件注解
      • 5、JSR 注解
    • AOP 注解
    • 启动类注解
    • 缓存注解
    • 事务注解
      • @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 标签
  • 五、其他注解
    • @ConfigurationProperties("xxx")
    • @SuppressWarnings

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

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
@Controller Web控制器组件模式注解 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 依赖注入注解

注解 描述 起始版本
@Autowired Bean依赖注入,支持多种注入方式,例如标注在构造器、普通方法、字段等 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”)

你可能感兴趣的:(java,开发语言)