scala
libraryDependencies += "com.netflix.archaius" % "archaius-core" % "0.7.6"
scala
import com.netflix.config.ConfigurationManager
import com.netflix.config.DynamicPropertyFactory
import com.netflix.config.DynamicStringProperty
scala
ConfigurationManager.loadCascadedPropertiesFromResources("config.properties")
properties
database.url=jdbc:mysql://localhost:3306/mydb
database.username=admin
database.password=secret
scala
val urlProperty: DynamicStringProperty = DynamicPropertyFactory.getInstance().getStringProperty("database.url", "default value")
val usernameProperty: DynamicStringProperty = DynamicPropertyFactory.getInstance().getStringProperty("database.username", "default value")
val passwordProperty: DynamicStringProperty = DynamicPropertyFactory.getInstance().getStringProperty("database.password", "default value")
val url: String = urlProperty.get()
val username: String = usernameProperty.get()
val password: String = passwordProperty.get()
scala
urlProperty.addCallback(() => {
})
scala
ConfigurationManager.getConfigInstance.setProperty("database.url", "new value")
ConfigurationManager.getConfigInstance.clearProperty("database.username")
ConfigurationManager.getConfigInstance.clear()