標準註解支援

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