Spring Boot应用程序中的常用注释列表


本文包含Spring Boot应用程序中常用注解的不完整列表。此列表旨在快速查找,有关详细和全面的信息,请阅读Java官方文档和文档。
Spring Core

  • @Bean 注释的方法会产生一个由Spring IoC容器管理的bean
  • Stereotype注释
    • @Component-将带注释的类标记为组件扫描找到的并加载到应用程序上下文中的bean
    • @Controller 注释的类标记为包含请求处理程序的Spring MVC的bean
    • @RestController 注释的类标记为@Controllerbean,并添加@ResponseBody以消息形式序列化返回的结果
    • @ Configuration-将带注释的类标记为定义bean的Java配置
    • @Service 注释的类标记为Bean(通常包含业务逻辑的约定)
    • @Repository  标记注释类为bean(如约定通常提供的数据访问),并增加从SQLException到DataAccessExceptions自动翻译

bean状态
  • @PostConstruct-注解方法在完成依赖项注入后执行初始化
  • @PreDestroy注释的方法在销毁bean之前执行,例如在关闭时

组态配置
  • @Import-导入一个或多个Java配置类@Configuration
  • @PropertySource-指示applicaiton.properties将键值对添加到Spring 的文件的位置Environment
  • @Value 注释的字段和参数值将被注入
  • @ComponentScan  配置扫描@Compenent,@Service等等组件。

bean属性

bean注射
  • @Autowired Bean注入带注释的setter,字段或构造函数参数中。
  • @Qualifier-指定bean的名称作为附加条件,以标识用于自动装配的唯一候选对象

SpringBoot

SpringBoot测试
  • @SpringBootTest-释的测试类将加载整个应用程序上下文以进行集成测试
  • @WebMvcTest注释的测试类将仅加载Web层(服务和数据层将被忽略)
  • @DataJpaTest注释的类将仅加载JPA组件
  • @MockBean-注释的字段标记为模拟并将其作为Bean加载到应用程序上下文中
  • @SpyBean-允许部分Mock bean
  • @Mock-将带注释的字段定义为模拟mock

Spring测试
  • @ContextConfiguration-定义@Configuration为集成测试加载应用程序上下文
  • @ExtendWith-定义扩展以执行测试,例如MockitoExtension
  • @SpringJUnitConfig-结合@ContextConfiguration和@ExtendWith(SpringExtension.class)
  • @TestPropertySource-定义集成测试中使用的属性文件的位置
  • @DirtiesContext-指示带注释的测试弄脏了应用程序上下文,并且将在每次测试后清除
  • @ActiveProfiles-定义在初始化测试应用程序上下文时应加载哪个活动bean定义
  • @Sql-允许定义SQL脚本和语句在测试之前和之后执行

事务管理

Spring JPA和Hibernate
  • @Id 注释的字段标记为实体的主键
  • @GeneratedValue-提供主键的生成策略
  • @Entity 注释的类标记为实体
  • @Column-为字段提供其他配置,例如列名
  • @Table-为实体提供其他配置,例如表名
  • @PersistenceContext - EntityManger注入注释的制定者和领域
  • @Embedded 注释的字段被实例化为Embeddable类的值
  • @Embeddable-带注释的类的实例存储为实体的一部分
  • @EmbeddedId- 注释的属性标记为由可嵌入类映射的复合键
  • @AttributeOverride-覆盖字段的默认映射
  • @Transient 注释的字段不是持久性的
  • @CreationTimestamp 注释的字段包含首次存储实体时的时间戳
  • @UpdateTimestamp 注释的字段包含实体上次更新时的时间戳
  • @ManyToOne-表示N:1关系,包含带注释字段的实体与其他类的实体具有单个关系,但另一个类具有多个关系
  • @JoinColumn-指示用于在拥有方或单向连接实体@ManyToOne或@OneToOne关系的列@OneToMany
  • @OneToOne-表示1:1关系
  • @MapsId-引用连接拥有@ManyToOne或@OneToOne关联方的列,作为引用和被引用实体的主键
  • @ManyToMany-表示N:M关系
  • @JoinTable-使用联接表指定关联
  • @BatchSize-定义大小以延迟加载带注释的实体的集合
  • @FetchMode-定义关联的获取策略,例如,在单个子查询中加载所有实体

Spring安全

SpringAOP
  • @EnableAspectJAutoProxy-启用对标记为的组件的支持@Aspect
  • @Aspect-将带注释的组件声明为包含切入点和建议的方面
  • @Before-声明在将调用传播到连接点之前执行的切入点
  • @AfterReturning-声明如果连接点成功返回结果则执行的切入点
  • @AfterThrowing-声明如果连接点引发异常则执行的切入点
  • @After-声明如果连接点成功返回结果或引发异常,则执行切入点
  • @Around-声明在调用之前执行的切入点,以控制对建议的连接点的执行
  • @Pointcut-外部化定义切入点表达式

此列表是经过整理的,可以在GitHub(https://github.com/gindex/spring-boot-annotation-list)上进行分叉。