Как переопределить PropertiesFactoryBean весной?

Я хотел бы переопределить метод 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

вот один пост, на который вы можете сослаться - stackoverflow.com/questions/7031905/…

Neeraj Benjwal 08.09.2018 12:06

Ссылка есть?

Vasanth 10.09.2018 03:04

или пример кода?

Vasanth 24.09.2018 05:59
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
652
1

Ответы 1

Расширьте заполнитель свойств 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();
    }

Другие вопросы по теме