私たちは似たような状況では、クライアントが実行時に設定ファイルに更新する必要が先月でした。 私たちは、あなただけのこのコンポーネントを注入し、そのゲッターとセッター
@Autowired
ConfigurationManagerComponent configComponent;
String myActualUserName=configComponent.getUserName();
を使用し、プロパティを取得または保存する必要が任意の時間に、そして、@value
@Component
public class ConfigurationManagerComponent{
@Value("conf.username")
private String userName;
@Value("conf.email");
private String email;
/*
* All your attributes
*/
//getters and setters
public String getUserName(){
return this.userName;
}
public void setUserName(String userName){
// first set the value to this class (component)
this.userName=userName;
//second save this value in the properties file
//a specific method you have to implement
saveproperties("conf.username",userName);
}
/*
* Do like this for all your getters and setters
*/
}
を使用してファイルからのすべてのプロパティをロードする中央Springコンポーネントを作成
これでコントローラのすべてのデータをconfigコンポーネントから取得し、Springモデルに設定してWebページにフォームを入力することができます。また、編集後に保存すると、常に設定コンポーネントのセッタ(更新クラスとプロパティファイル)。
この方法は標準ではなく、私たちが問題を解決するために使用したソリューションであり、すぐに良い結果が得られます。 また、ApacheコモンズのコンフィグレーションHereに他の解決策をチェックすることもできます。 これが役立つことを願っています。あなたのアプリケーションのために
、あなたがプロパティファイルをロードした後/ DTOをマップするために、あなたの更新されたプロパティを格納することができ、必要な場合は、そこからそれを読むことができます。プロパティファイルを使用してフォームをバインドするときは、マップ/ dtoおよびプロパティを更新していることを確認する必要があります。アプリケーションの起動時にのみ、@Valueを使用することができます。コンテキストがロードされた後は、それは役に立ちません。 – asg
こんにちは、あなたが提案したアイデアに興味があります。万が一あなたが関係することができる資料や例がありますか?前もって感謝します! –
これを確認してください。https://stackoverflow.com/questions/42179664/inject-all-keys-and-values-from-property-file-as-map-in-spring – asg