我使用Spring(沒有彈簧啓動)。我想構建可使用默認配置(資源文件夾中的logback.xml
和application.properties
)或-Dconfig.folder=/path/to/custom/external/directory
(logback.xml
和application.properties
in/path/to/custom/external/directory)運行的獨立應用程序。當使用-Dconfig.folder參數運行應用程序參數AppConfig
應該從外部目錄加載logback和屬性。外部化屬性和logback春天
是否有任何使外部文件夾像資源文件夾一樣行事?
如果沒有,這是什麼常見的解決方案?
我當前實現(使用默認的資源文件夾只):
App.java
public class App {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
SampleAction p = context.getBean(SampleAction.class);
p.performTask();
}
}
AppConfig.java
@ComponentScan
@PropertySource("classpath:application.properties")
class AppConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
SampleAction.java
@Component
public class SampleAction {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Value("${sample.prop}")
private String sampleProp;
public void performTask(){
logger.debug(sampleProp);
}
}
logback.xml和application.properties是不相關的問題
難道我滿意的回答你的問題?如果是,請隨時接受。如果不是,請解釋爲什麼不能讓我改進答案。 –
我在一天前添加了一條評論,關於我缺少的內容:)基本上,我不知道在哪裏放置該Java代碼的InputStream配置,以便讓我的logback配置可用asap – ilovkatie
請參閱我的編輯。如果你對Spring一無所知,你需要先做好功課。當你遇到特殊問題時,我們會盡力幫助你,我們不會做你的工作。 –