Standard Annotation Support

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

  • @Autowired

  • @Qualifier

  • @Value

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

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

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

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

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

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

  • @Transactional (org.springramework.transaction.annotation)with limited attribute support

JSR-250 Lifecycle Annotations

在 Spring TestContext Framework 中,您可以在 ApplicationContext 中配置的任何应用程序组件上使用 @PostConstruct@PreDestroy,语义标准。但是,这些生命周期注释在实际测试类中使用有限。 如果测试类中的一个方法带有 @PostConstruct 注解,那么该方法在底层测试框架的任何 before 方法之前运行(例如,带有 JUnit Jupiter 的 @BeforeEach),并适用于测试类中的每个测试方法。另一方面,如果测试类中的一个方法带有 @PreDestroy 注解,则该方法永远不会运行。因此,在测试类中,我们建议你使用底层测试框架的测试生命周期回调,而不是 @PostConstruct@PreDestroy