标准标注支持
以下注解支持标准语义,适用于 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 框架中,你可以在 ApplicationContext
中配置的任何应用程序组件上使用具有标准语义的 @PostConstruct
和 @PreDestroy
。然而,这些生命周期注解在实际的测试类中的使用是有限的。
如果测试类中的某个方法被注解为 @PostConstruct
,那么该方法会在底层测试框架的任何前置方法(例如,使用 JUnit Jupiter 的 @BeforeEach
注解的方法)之前运行,并且这适用于测试类中的每个测试方法。另一方面,如果测试类中的某个方法被注解为 @PreDestroy
,那么该方法永远不会运行。因此,在测试类中,我们建议你使用底层测试框架的测试生命周期回调,而不是 @PostConstruct
和 @PreDestroy
。