Package io.microsphere.spring.config
Class ConfigurationPropertyRepository
- java.lang.Object
-
- io.microsphere.spring.config.ConfigurationPropertyRepository
-
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.DisposableBean
,org.springframework.beans.factory.InitializingBean
,org.springframework.context.EnvironmentAware
public class ConfigurationPropertyRepository extends java.lang.Object implements org.springframework.context.EnvironmentAware, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean
A repository for managingConfigurationProperty
instances with support for configuration via Spring'sEnvironment
.This class provides methods to add, remove, retrieve, and manage configuration properties. It also allows integration with Spring's lifecycle management through the
InitializingBean
andDisposableBean
interfaces, as well as environment-based property configuration through theEnvironmentAware
interface.Configuration Properties
- "microsphere.spring.config-property-repository.max-size": Sets the maximum number of properties that can be stored in the repository. Defaults to "99999" if not specified.
Example Usage
// Create a new repository instance ConfigurationPropertyRepository repository = new ConfigurationPropertyRepository(); // Set the environment to load max size from configuration ConfigurableEnvironment environment = new StandardEnvironment(); repository.setEnvironment(environment); // Initialize the repository (usually done automatically by Spring) repository.afterPropertiesSet(); // Add a configuration property ConfigurationProperty property = new ConfigurationProperty("my.property.name"); property.setValue("exampleValue"); repository.add(property); // Retrieve the property ConfigurationProperty retrieved = repository.get("my.property.name"); System.out.println(retrieved.getValue()); // Output: exampleValue // Clean up resources when done repository.destroy();
- Since:
- 1.0.0
- Author:
- Mercy
- See Also:
ConfigurationProperty
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
BEAN_NAME
static int
DEFAULT_MAX_SIZE_PROPERTY_VALUE
The default max size ofConfigurationPropertyRepository
static java.lang.String
MAX_SIZE_PROPERTY_NAME
The max size ofConfigurationPropertyRepository
static java.lang.String
PROPERTY_NAME_PREFIX
-
Constructor Summary
Constructors Constructor Description ConfigurationPropertyRepository()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(io.microsphere.beans.ConfigurationProperty configurationProperty)
Add aConfigurationProperty
instancevoid
afterPropertiesSet()
boolean
contains(java.lang.String name)
Determine whether the repository contains the specified nameio.microsphere.beans.ConfigurationProperty
createIfAbsent(java.lang.String name)
Create aConfigurationProperty
instance if absentvoid
destroy()
clear the repositoryio.microsphere.beans.ConfigurationProperty
get(java.lang.String name)
Get aConfigurationProperty
instance by namejava.util.Collection<io.microsphere.beans.ConfigurationProperty>
getAll()
Get allConfigurationProperty
instancesint
getMaxSize()
Get the max size of the repositoryprotected java.util.Map<java.lang.String,io.microsphere.beans.ConfigurationProperty>
getRepository()
io.microsphere.beans.ConfigurationProperty
remove(java.lang.String name)
Remove aConfigurationProperty
instance by namevoid
setEnvironment(org.springframework.core.env.Environment environment)
-
-
-
Field Detail
-
BEAN_NAME
public static final java.lang.String BEAN_NAME
- See Also:
- Constant Field Values
-
PROPERTY_NAME_PREFIX
public static final java.lang.String PROPERTY_NAME_PREFIX
- See Also:
- Constant Field Values
-
DEFAULT_MAX_SIZE_PROPERTY_VALUE
public static final int DEFAULT_MAX_SIZE_PROPERTY_VALUE
The default max size ofConfigurationPropertyRepository
-
MAX_SIZE_PROPERTY_NAME
@ConfigurationProperty(type=int.class, description="The max size of the repository for ConfigurationProperty instances", defaultValue="99999") public static final java.lang.String MAX_SIZE_PROPERTY_NAME
The max size ofConfigurationPropertyRepository
- See Also:
- Constant Field Values
-
-
Method Detail
-
add
public void add(io.microsphere.beans.ConfigurationProperty configurationProperty)
Add aConfigurationProperty
instance- Parameters:
configurationProperty
- aConfigurationProperty
instance
-
remove
public io.microsphere.beans.ConfigurationProperty remove(java.lang.String name)
Remove aConfigurationProperty
instance by name- Parameters:
name
-the name of ConfigurationProperty
-
get
public io.microsphere.beans.ConfigurationProperty get(java.lang.String name)
Get aConfigurationProperty
instance by name- Parameters:
name
-the name of ConfigurationProperty
- Returns:
null
if not found
-
contains
public boolean contains(java.lang.String name)
Determine whether the repository contains the specified name- Parameters:
name
-the name of ConfigurationProperty
- Returns:
true
if contains, otherwisefalse
-
createIfAbsent
public io.microsphere.beans.ConfigurationProperty createIfAbsent(java.lang.String name)
Create aConfigurationProperty
instance if absent- Parameters:
name
-the name of ConfigurationProperty
- Returns:
- the
ConfigurationProperty
instance
-
getAll
public java.util.Collection<io.microsphere.beans.ConfigurationProperty> getAll()
Get allConfigurationProperty
instances- Returns:
- never
null
-
getMaxSize
public int getMaxSize()
Get the max size of the repository- Returns:
- max size
-
setEnvironment
public void setEnvironment(org.springframework.core.env.Environment environment)
- Specified by:
setEnvironment
in interfaceorg.springframework.context.EnvironmentAware
-
afterPropertiesSet
public void afterPropertiesSet()
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
-
destroy
public void destroy() throws java.lang.Exception
clear the repository- Specified by:
destroy
in interfaceorg.springframework.beans.factory.DisposableBean
- Throws:
java.lang.Exception
-
getRepository
protected java.util.Map<java.lang.String,io.microsphere.beans.ConfigurationProperty> getRepository()
-
-