标准注解支持

Spring TestContext Framework支持以下具有标准语义的注解。请注意,这些注解不仅适用于测试,还可以在Spring Framework的任何地方使用。

  • @Autowired

  • @Qualifier

  • @Value

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

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

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

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

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

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

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

JSR-250生命周期注解

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

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