Я хотел бы переопределить метод getProperty () в классе java.util.Properties, пожалуйста, посоветуйте.
1. весенний контекстный файл
spring-context.xml
<bean id = "myproperty" class = "org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name = "locations" value = "classpath:myproperties.properties" />
</bean>
2. Класс Java
public class MyClass{
@Autowired
public void setMyproperty(Properties myproperty) {
this.url=myproperty.getProperty("url");
}
}
3. файл конфигурации
myproperties.properties
url=http://stackoverflow.com
К сведению: я извлекаю значения партии из файла конфигурации, и я хотел бы вызвать trim (), как только я получу значение из .properties, чтобы избежать избыточности кода, пытающегося переопределить метод getProperty ().
Использование: Spring 4.0
Ссылка есть?
или пример кода?




Расширьте заполнитель свойств Spring по умолчанию (PropertyPlaceholderConfigurer) и зафиксируйте загружаемые им свойства в локальной переменной.
public class PropertiesUtils extends PropertyPlaceholderConfigurer {
private static Map<String, String> propertiesMap;
private int springSystemPropertiesMode = SYSTEM_PROPERTIES_MODE_FALLBACK;
@Override
public void setSystemPropertiesMode(int systemPropertiesMode) {
super.setSystemPropertiesMode(systemPropertiesMode);
springSystemPropertiesMode = systemPropertiesMode;
}
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) throws BeansException {
super.processProperties(beanFactory, props);
propertiesMap = new HashMap<String, String>();
for (Object key : props.keySet()) {
String keyStr = key.toString();
String valueStr = resolvePlaceholder(keyStr, props, springSystemPropertiesMode);
propertiesMap.put(keyStr, valueStr);
}
}
public static String getProperty(String name) {
return propertiesMap.get(name).toString();
}
вот один пост, на который вы можете сослаться - stackoverflow.com/questions/7031905/…