私はSpringを使用しています(Spring-Bootなし)。私は、デフォルト設定(とapplication.properties
リソースフォルダ内)または-Dconfig.folder=/path/to/custom/external/directory
(logback.xml
とapplication.properties
/path/to/custom/external /ディレクトリ)で実行できるスタンドアロンアプリケーションをビルドしたいと考えています。アプリケーションを-Dconfig.folderパラメータAppConfig
で実行すると、ログバックとプロパティの両方が外部ディレクトリからロードされます。プロパティの外部化とログバックSpring
外部フォルダをリソースフォルダのように動作させる方法はありますか。
そうでない場合は、これに共通する解決策は何ですか?
私の現在の実装(使用して、デフォルトのリソースフォルダのみ):
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のlog4j.xml
-Dlog4j.configuration=C:\neon\log4j.xml
について問題
が、私は十分あなたの質問に答えるましたか?はいの場合は、それを受け入れてください。そうでない場合は、私がその答えを改善できる理由を説明してください。 –
基本的には、JavaコードInputStreamの設定を入れて、ログバック設定をできるだけ早くできるようにしていません。 – ilovkatie
私の編集を参照してください。あなたが春のことを知らないなら、まず宿題をする必要があります。私たちはあなたが特定の問題を抱えているときにあなたを助けようとしますが、私たちはあなたの仕事をしません。 –