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