Beim Ausführen von Integrationstests gegen externe Testinfrastrukturen wie dynamische Container sind Zielports und Hostnamen vorab nicht bekannt. Die Annotation `@DynamicPropertySource` ermöglicht es Entwicklern, dem Spring-`Environment` über funktionale `Supplier`-Instanzen dynamische Konfigurationswerte bereitzustellen. Dieser Mechanismus wird vor dem Aktualisieren des ApplicationContext ausgeführt, wodurch sichergestellt wird, dass nachgelagerte Beans dynamisch ermittelte Verbindungsdaten ohne fest codierte Eigenschaften erhalten.
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)class PaymentGatewayIntegrationTest {static final GenericContainer<?> mockServer =new GenericContainer<>("mockserver/mockserver:latest").withExposedPorts(1080);static {mockServer.start();}@DynamicPropertySourcestatic void configureDynamicProperties(DynamicPropertyRegistry registry) {registry.add("payment.gateway.url",() -> "http://" + mockServer.getHost() + ":" + mockServer.getMappedPort(1080));}@Testvoid shouldProcessPaymentAgainstDynamicEndpoint() {// Test execution against the dynamic endpoint}}