| For the latest stable version, please use Spring Framework 6.2.12! | 
@DynamicPropertySource
@DynamicPropertySource is a method-level annotation that you can use 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.