3つの異なるステータスタイプを含む列挙型があります。これらのステータスは、ユーザーに送信される電子メールに表示する必要があり、表示されるステータスを含む文字列は、messages.propertiesに格納されます(Springクラスorg.springframework.context.MessageSourceの実装を使用して読み取ります)。これは通常のSpringコントローラーでうまく機能します。ただし、列挙型内の「表示ステータス」を取得することをお勧めします(ロジックを1か所に含めるため)。
ただし、messageSourceプロパティは常に空であるため、次のコードのようにメッセージソースを列挙型に自動配線することは機能していないようです。
public enum InitechStatus{
OPEN("open"), CLOSED("closed"), BROKEN("broken");
public final String name;
@Autowired
private MessageSource messageSource;
InitechStatus(String name) {
this.name = name;
}
@Override
public String toString() {
String displayStatusString = messageSource.getMessage("page.systemadministration.broadcastmail.status."
+ this.name, null, Locale.ENGLISH);
return displayStatusString;
}
}
列挙型内で自動配線されたメッセージソースを使用するにはどうすればよいですか(または、私が試していることを達成するための他の方法はありますか)?