2016-05-10 2 views
2

に値をマッピングするために、私は次のようでapplication.properitesファイルがあります。は、文字列

xxx.xxx = sandbox 
xxx.sandbox = 123 
xxx.production = 456 

を私はケース内の文字列値123にマッピングしたいxxx.xxx ==サンドボックスと456の場合はxxx.xxx == production

... 
public class temp { 

@Value("${??????}") 
    private String token; 
} 

??????の条件を記入することは可能ですか? xxx.xxxに基づいてトークンを123または456にマップしますか?

+2

代わりにプロファイルを使用し、それぞれに適切なプロパティファイルを読み込みます。 –

答えて

3

簡単な方法を見ることができます制限する@Profileでマークすることができます誰かがこの質問にヒットする場合は、

@Value("#{'${xxx.xxx}'=='sandbox' ? '${xxx.sandbox}' : '${xxx.production}'}") 

私は、プロファイルを使って作業を始めるほうがずっと簡単だと思います。

+0

Aweswome!私は内側の '$ {xxx.xxx}'の引用符を紛失していました –

3

春のプロファイルを使用することができますので、各環境のプロパティファイルを持つことができます。

スプリングプロファイルを使用すると、アプリケーションの一部を分離し、特定の環境でのみ使用できるようにすることができます。それは

にロードされたときに どれ@Componentまたは@Configuration は、あなたがよりここ http://www.baeldung.com/spring-profiles

http://www.mkyong.com/spring/spring-profiles-example/

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

+0

上記のプロファイルテクニックを使用した後、application.properitesファイルのプロファイルに従って、xxx​​.sandboxまたはxxx.productionをどのようにマップする必要がありますか? – USer22999299

+0

どのようなアプリケーションを実行していますか? – reos

+0

アプリケーションを実行する瞬間に、このプロパティ-Dspring.profiles.active = productionを使用することはできますが、これらのプロファイルは、春のためにBeanをマップするのに役立ちます。プロファイルxの使用時にマップに使用する方法xxx.production、プロファイルyの場合xxx.sandbox? – USer22999299