标准注释支持
以下注释在Spring TestContext框架的所有配置中都支持标准语义。请注意,这些注释并非专门用于测试,可以在Spring框架的任何地方使用。
-
@Autowired -
@Qualifier -
@Value -
@Resource(jakarta.annotation)如果支持JSR-250 -
@ManagedBean(jakarta.annotation)如果支持JSR-250 -
@Inject(jakarta.inject)如果支持JSR-330 -
@Named(jakartainject)如果支持JSR-330 -
@PersistenceContext(jakarta.persistence)如果支持JPA -
@PersistenceUnit(jakarta.persistence)如果支持JPA -
@Transactional(org.springframework.transaction.annotation)具有有限的属性支持
JSR-250 生命周期注解
在 Spring TestContext 框架中,您可以在 ApplicationContext 中配置的任何应用程序组件上使用 @PostConstruct 和 @PreDestroy 注解,并且它们具有标准的语义。然而,在实际的测试类中,这些生命周期注解的用途有限。
如果测试类中的方法被 @PostConstruct 注解所标记,那么该方法将在底层测试框架的任何 before 方法之前运行(例如,被 JUnit Jupiter 的 @BeforeEach 注解标记的方法),并且这适用于测试类中的每个测试方法。另一方面,如果测试类中的方法被 @PreDestroy 注解所标记,那么该方法将永远不会运行。因此,在测试类中,我们建议您使用底层测试框架提供的测试生命周期回调,而不是 @PostConstruct 和 @PreDestroy。