标准注释支持

以下注释支持 Spring TestContext 框架的所有配置的标准语义。请注意,这些注释不特定于测试,可以在 Spring 框架中的任何位置使用。

  • @Autowired

  • @Qualifier

  • @Value

  • @Resource (jakarta.annotation) 如果存在 JSR-250

  • @ManagedBean (jakarta.annotation) 如果存在 JSR-250

  • 如果存在 JSR-330,则为 @Inject (jakarta.inject)

  • 如果存在 JSR-330,则为 @Named (jakarta.inject)

  • 如果存在 JPA,则为 @PersistenceContext (jakarta.persistence)

  • 如果存在 JPA,则为 @PersistenceUnit (jakarta.persistence)

  • @Transactional (org.springframework.transaction.annotation) 具有 有限的属性支持

JSR-250 生命周期注解

在 Spring TestContext Framework 中,可以在 ApplicationContext 中配置的任何应用程序组件上使用 @PostConstruct@PreDestroy,并具有标准语义。但是,这些生命周期注解在实际测试类中的使用受到限制。

如果测试类中的方法使用 @PostConstruct 进行注解,则该方法将在底层测试框架的任何 before 方法(例如,使用 JUnit Jupiter 的 @BeforeEach 进行注解的方法)之前运行,并且适用于测试类中的每个测试方法。另一方面,如果测试类中的方法使用 @PreDestroy 进行注解,则该方法永远不会运行。因此,在测试类中,我们建议使用底层测试框架中的测试生命周期回调,而不是 @PostConstruct@PreDestroy