файл внешних свойств пружины; исключение файла не найдено

1

Я пытаюсь читать из внешнего файла свойств со следующим кодом ниже. Я уверен, что у меня есть правильный путь, но я все еще получаю файл, который не найден. Какие-либо предложения? Вот мой код:

public class Timer {

     @Autowired
      private ApplicationContext ctx;

     @Autowired
        private SpringMailSender springMailSender;

    @Scheduled(cron="${timer.time}") //this is the line that is having trouble
    public void timer()
    {
        System.out.println("timer() in Timer Class has been stepped into");
        try {
            springMailSender.sendMail();
            } catch (Exception e) {
                e.printStackTrace();
            }
        System.out.println("Method executed on every 2nd Monday of each month. Current time is :: "+ new Date());
    }

}

И вот как я установил свой конфигурационный файл для него...

<!--  Property Placeholder -->
        <bean
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
                <list>
                    <value>classpath:properties/system.properties</value>
                    <value>file:${external.property.directory}propfilename</value>
                </list>
            </property>
        </bean>

<!-- messageSource -->
    <bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>file:${external.property.directory}propfilename</value>
            </list>
        </property>
    </bean>

С моим внешним файловым путем, установленным таким образом в файле свойств в веб-приложении.

#directory on the server where property files will be stored
external.property.directory=C\:\\propfoldername\\

И ошибка, которую я получаю, такова:

 org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: ${external.property.directory}propfilename (The system cannot find the file specified)

Любая помощь будет оценена по достоинству. Дайте мне знать, если я оставил код, который вам может понадобиться.

  • 0
    Вы не можете использовать местозаполнитель в конфигурации PropertyPlaceholderConfigurer (для пружины требуется PropertyPlaceholderConfigurer для обработки переменных ${xxx} )
  • 0
    вы пытаетесь использовать свойство перед его настройкой
Теги:
spring
javabeans

1 ответ

1
Лучший ответ

То, что вы пытаетесь сделать, не работает, потому что $ {external.property.directory} не устраняется. Вы можете добиться того же результата, но используя переменную среды, если вам нужны оба файла свойств (обратите внимание, что любые свойства во втором случае переопределяют одни и те же свойства из первого)

  • 0
    Благодарю. Я просто поместил строку внешних свойств в свой внутренний файл свойств, и это исправило это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню