标准注解支持

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

  • @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.springframework.transaction.annotation) 具有有限的属性支持

JSR-250生命周期注解

在Spring TestContext框架中,您可以使用@PostConstruct@PreDestroyApplicationContext中配置的任何应用程序组件上使用标准语义。但是,这些生命周期注解在实际测试类中的用法有限。

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