Привет! Я пытаюсь использовать библиотеку многократного использования, которую я создал с помощью Spring Boot (2.0.5) из 2 приложений. Я могу связать свойства из application.properties, который находится в моем classpath, с моим bean-компонентом следующим образом, и я вижусхемы, устанавливаемые с помощью установщиков в моей отладке в моем первом приложении Spring Batch, которое также создается с помощью Spring boot (2.0.5)
Это класс bean-компонента свойства в моей библиотеке, который содержит некоторые служебные приложения.библиотека - это просто пакет jar, созданный с помощью весенней загрузки.
пакет com.test.lib.config
@ConfigurationProperties("job")
@PropertySources({
@PropertySource(value = "${ext.prop.dir}", ignoreResourceNotFound = true),
@PropertySource(value = "classpath:application.properties", ignoreResourceNotFound = true)
})
public class ServiceProperties {
/**
* Schema for the service
*/
private String schema;
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
}
И конфигурационный компонент для этой библиотеки выглядит следующим образом в том же пакете.
@Configuration
@EnableConfigurationProperties(ServiceProperties.class)
@ComponentScan("com.test.lib")
public class LibraryModuleConfig {
}
Этот код прекрасно работает при вызове из пакетного загрузочного спринта-приложения, которое включает эту библиотеку в качестве зависимости и вызывает соответствующие установщики, и я вижу набор схем при добавлении job.schema=testSchema
в приложение.properties
Я пытаюсь использовать эту же библиотеку в существующем весеннем веб-приложении mvc, запущенномс сервера Tomcat с каталогом внешних файлов в качестве аргументов запуска (это приложение не было создано при весенней загрузке) и добавил соответствующий контекст: компонент-сканирование, чтобы включить компоненты (компоненты конфигурации Java) из библиотеки в контекст приложения (appn-context.xml).Свойство job.schema передается как из файла application.properties, так и даже из внешнего файла на диске C, как указано в $ {ext.prop.dir} "в аннотации @propertySources. Свойство схемы в компоненте ServiceProperties Bean никогда не устанавливается идаже отладчики никогда не вызываются в отладке. Почему этот bean-компонент конфигурации libray не будет работать в существующем приложении Spring mvc, но будет работать с приложением Spring Batch. Оба они добавляют библиотеку в качестве зависимости. Я долго занимался этимвремя и за исключением привязки свойства пружины другие функции, кажется, работают.