Так что это должна быть какая-то глупая ошибка, с которой я не смог пройти. Я пытаюсь выполнить экстернализацию моего файла свойств, который теперь помещен в мой пользовательский дом. Я загружаю файл свойств с помощью @PropertySource
так:Spring PropertyPlaceHolder Java Config внешний файл свойств
@Configuration
@PropertySources(value = { @PropertySource("file:#{systemProperties['user.home']}/.invoice/config.properties") })
public class PropertiesConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertiesPlaceHolderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
Но, к сожалению, это не загружает файл свойств. Броски FileNotFoundException
. Но если я изменю путь к:
@PropertySources(value = { @PropertySource("file:/home/rohit/.invoice/config.properties") })
он работает правильно. И это путь, к которому разрешается предыдущий путь. Я зарегистрировал его для проверки. Поэтому мне кажется, что SpEL не оценивается в аннотации @PropertySource
. Должно ли это работать так?
Если да, то есть ли другой способ прочитать файл внешних свойств, который находится в /home/rohit
? Я не хочу давать абсолютный путь по очевидным причинам. И я бы хотел избежать расширения класса PropertyPlaceHolderConfigurer
.
Еще одна опция, которую я пробовал, заключалась в добавлении папки /home/rohit/.invoice
в путь к tomcat. Но похоже, что Spring не использует System Classpath для разрешения суффикса classpath:
. Любые указатели на это?
Выражение не будет работать вместо 'file: $ {user.home} /. Invoice/config.properties'. –
@ M.Deinum Позвольте мне попробовать это .. –
@ M.Deinum Ahaa !! Это сработало :) Отправляй это в ответ, так что я могу его принять :) –