Следующие аннотации поддерживаются при стандартной семантике для всех конфигураций 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 (javax.persistence), если присутствует JPA
  • @PersistenceUnit (javax.persistence), если присутствует JPA
  • @Transactional (org.springframework.transaction.annotation) с ограниченной поддержкой атрибутов

Аннотации жизненного цикла JSR-250

В Spring TestContext Framework можно использовать аннотации @PostConstruct и @PreDestroy со стандартной семантикой для любых компонентов приложения, сконфигурированных в ApplicationContext. Однако эти аннотации жизненного цикла имеют ограниченное применение в реальном тестовом классе.

Если метод в тестовом классе аннотирован @PostConstruct, то этот метод запускается до всех методов before основного тестового фреймворка (например, методов, аннотированных @BeforeEach из JUnit Jupiter), и это относится к каждому тестовому методу в тестовом классе. С другой стороны, если метод в тестовом классе помечен аннотацией @PreDestroy, этот метод никогда не будет выполнен. Поэтому в рамках тестового класса рекомендуется использовать обратные вызовы жизненного цикла теста из основного тестового окружения вместо аннотаций @PostConstruct и @PreDestroy.