12

Spring の applicationcontext.xml ファイルで #{systemProperties['environment']} を使用すると、環境に関連付けられた値が返されますか?

または、Spring applicationcontext.xml ファイルでシステム変数の値を取得する方法はありますか。

4

2 に答える 2

27

私の記憶が正しければ、次のような違いがあります。

システム プロパティにはさまざまな方法でアクセスできます。

  • #{systemProperties['databaseName']}
  • #{systemProperties.databaseName}
  • ${databaseName} //$ の代わりに # !!

#{systemProperties['databaseName']} system-system-properties にアクセスできます 。

#{systemProperties.databaseName}コマンド ラインなどから読み取ったシステム プロパティにアクセスできます ( ) -DdatabaseName="testDB"

${databaseName}たとえば、PropertyPlaceholderConfigurerによってロードおよび提供されたプロパティファイルからプロパティにアクセスしたり、システムプロパティにもアクセスしたりできます

@Value("#{systemProperties['java.version']}")
private String javaVersionMap;

//Dont know how
//@Value("#{systemProperties.javav.version}")
//private String javaVersionDirect;

@Value("${java.version}")
private String javaVersionProp;

//-DcmdParam=helloWorld
@Value("#{systemProperties['cmdParam']}")
private String cmdParamMap;

@Value("#{systemProperties.cmdParam}")
private String cmdParamDirect;

@Value("${cmdParam}")
private String cmdParamProp

これらはすべて、@Value注釈または config.xml ファイルで使用できます ( <property name="databaseName" value="#{systemProperties.databaseName}"/>) 。

于 2011-06-09T07:19:01.267 に答える
4

このようなことを行う 1 つの方法は、システム プロパティを使用するように構成できる PropertyPlaceholderConfigurer を使用することです。

また、 Spring 3.1 M1 ブログ エントリで、「環境」から構成情報にアクセスするための新しい機能について説明していることにも気付きました。もちろん、これはマイルストーンにすぎません...本番環境でのリリースではありません。

于 2011-06-08T22:39:15.480 に答える