У меня есть веб-приложение Spring (на самом деле это веб-приложение Spring Integration, но я предполагаю, что это общий вопрос), настроенное с использованием файла XML.
Это объявление PropertySource :
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
@Configuration
@PropertySource("classpath:config.properties")
public class WebappConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
Вот выдержка из содержимого файла, это набор путей к файловой системе:
baseFolder=C:\\Users\\myuser\\Documents\\data
baseFolderXML=C:/Users/myuser/Documents/data
Они объявлены дважды, потому что мне нужно одно и то же значение в обоих файлах Java иXML-файл контекста Spring, и я не нашел способа автоматически преобразовать одну форму в другую.
Пример использования в XML-файле контекста:
<int-file:outbound-channel-adapter order="1"
channel="filesOut" delete-source-files="false"
directory="file:${baseFolderXML}/out"
/>
Пример в классе Java:
public class RequestToMessageFile {
@Autowired
private Environment env;
private static String workingFolder;
// ...
@PostConstruct
public void init() {
workingFolder = env.getProperty("baseFolder") + File.separator + "in-http";
}
// ...
Есть ли способ, чтобы каждый путь был определен только один раз и преобразован при использовании в файле XML и в источниках Java?