Загрузка…
Загрузка…
Контейнер DI делает то же, что и Factory — решает, какой конкретный класс создать за интерфейсом, — но в обобщенном виде: он рекурсивно связывает весь граф объекта, управляет жизненным циклом/областью действия и делает это через конфигурацию/аннотации. Написанная от руки Factory по-прежнему соответствует узкому, единоразовому творческому решению; контейнер подходит, если подключение множества взаимозависимых компонентов становится его собственной обузой.
@SpringBootTest
@Testcontainers
class OrderRepositoryIntegrationTest {
@Container
static PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:16");
@DynamicPropertySource
static void configure(DynamicPropertyRegistry registry) {
registry.add("spring.datasource.url", postgres::getJdbcUrl);
}
}Контейнер DI делает то же, что и Factory — решает, какой конкретный класс создать за интерфейсом, — но в обобщенном виде: он рекурсивно связывает весь граф объекта, управляет жизненным циклом/областью действия и делает это через конфигурацию/аннотации.
