| This version is still in development and is not considered stable yet. For the latest stable version, please use Spring Framework 6.2.12! | 
@DynamicPropertySource
@DynamicPropertySource is an annotation that can be applied to methods in integration
test classes that need to register dynamic properties to be added to the set of
PropertySources in the Environment for an ApplicationContext loaded for an
integration test. Dynamic properties are useful when you do not know the value of the
properties upfront – for example, if the properties are managed by an external resource
such as for a container managed by the Testcontainers project.
The following example demonstrates how to register a dynamic property:
- 
Java 
- 
Kotlin 
@ContextConfiguration
class MyIntegrationTests {
	static MyExternalServer server = // ...
	@DynamicPropertySource (1)
	static void dynamicProperties(DynamicPropertyRegistry registry) { (2)
		registry.add("server.port", server::getPort); (3)
	}
	// tests ...
}| 1 | Annotate a staticmethod with@DynamicPropertySource. | 
| 2 | Accept a DynamicPropertyRegistryas an argument. | 
| 3 | Register a dynamic server.portproperty to be retrieved lazily from the server. | 
@ContextConfiguration
class MyIntegrationTests {
	companion object {
		@JvmStatic
		val server: MyExternalServer = // ...
		@DynamicPropertySource (1)
		@JvmStatic
		fun dynamicProperties(registry: DynamicPropertyRegistry) { (2)
			registry.add("server.port", server::getPort) (3)
		}
	}
	// tests ...
}| 1 | Annotate a staticmethod with@DynamicPropertySource. | 
| 2 | Accept a DynamicPropertyRegistryas an argument. | 
| 3 | Register a dynamic server.portproperty to be retrieved lazily from the server. | 
See Context Configuration with Dynamic Property Sources for further details.