2016-08-29 5 views
1

私は春のブートで新しいものです。特定のロケールのmessages.propertiesファイルを選択するために私の春の起動アプリケーションをセットアップしたいのですが、プログラムを起動するときに特定のargが使用されています。これらのmessage.propertiesフィールドは、プログラムイベントをログに記録するために、また電子メールレポートを顧客に送信するために使用されます。Spring Boot: 'args'の値に応じてロギングにいくつかのロケールmessage.propertiesを使用します。

私が見つけた例は、Webアプリケーションにのみ適しています。そして私はinbuiltスプリングブート技術を使用してこれがどのように達成できるかについての適切な例を見つけることができませんでした。

+0

意味しますかメッセージをフェッチする言語を選択するか、まったく別のリソースバンドルを選択することを意味しますか(例えば、 'messages.properties'ではなく' error_messages.properties')? –

+0

私は2つの異なる言語ファイル、messages_en.propertiesとmessages_de.propertiesを持っています。 arg値に応じて特定のものを取得してください –

+0

それから私はMilošMilivojevićの答えがそのトリックを行うべきだと信じています! –

答えて

1

まあ、定期的な春ブーツmain()方法からわずかアプリケーションの実行です - あなたは、Springアプリケーションを実行する前に、あなたはLocale.setDefaultメソッドを経由して、デフォルトのロケールを設定することができ、そのように:あなたは、あなたがしたい

@SpringBootApplication 
public class DemoApplication { 

    public static void main(String[] args) { 
    Locale defaultLocale = determineLocaleFrom(args); 
    Locale.setDefault(defaultLocale); 

    ApplicationContext context = SpringApplication.run(DemoApplication.class, args); 

    MessageSource messageSource = context.getBean(MessageSource.class); 
    // when fetching messages, always read from the default locale 
    messageSource.getMessage("my.message.code", null, Locale.getDefault()); 
    } 

} 
+0

ありがとうございますが、このエラーが発生し続けます。原因:org.springframework.context.NoSuchMessageException:ロケール 'en_US'のコード 'field1'の下にメッセージが見つかりません。 –

+0

私はエラーが十分であると考えています - あなたは適切な 'messages.properties'ファイルを持っていないか、正しいメッセージがありません。 –

+0

正しいファイルがあります:messages_en_US.propertiesとフィールドはそこにあります –

関連する問題