@Value
アノテーションを使用しないで、春に外部プロパティファイルからテキストを読み取る方法はありますか?例:私はクラス変数としてSpringブートでJavaアノテーションの設定プロパティ/メッセージを外部化
@Value("${var.foo}") String value;
を用いてばね豆の中に注入することができる
var.foo="hello"
をapplication.properties。 @Value
アノテーションを使用せずにこのプロパティを含める方法はありますか? JSR Beanの検証がどのように行われるかのようなもの。
@NotNull(message={custom.notnull})
、あなたはValidationMessages.propertiesファイルでこのプロパティの値を外部化。
例、私はリソース(Webコンポーネント)クラスを持っている場合、私はそれらを文書化する闊歩注釈を使用する必要がある場合は、
@controller
@path("/")
@Api(description = "User Resource API")
public class UserResource {
@Path("/users")
@GET
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "returns user details", notes = "some notes")
public User getUser() {
return new User(123, "Joe", "Montana");
}
}
とモデル、
@ApiModel("user model")
public class User {
@ApiModelProperty(value = "This represents user id")
private String id;
private String firstName;
private String lastName;
...
}
あなたがどのようにこの文字列/文章/メッセージを外部プロパティファイルに外部化します。私はこれが一般的なJavaの注釈や春に適用され、Swagger特有のものではないと思います。私がSwaggerを指定したのは、外部ライブラリのValidationMessages.propertiesファイルでこれらのメッセージを指定するオプションがあり、Springがデフォルトでそれを取得する(または設定できる)ことです。
スワッガーはこのようなオプションを提供していますか?そうでない場合は、どうすればセットアップできますか?
根本的な問題は、ドキュメント関連のデータ(メタデータ)を使用してコード/ロジックを混乱させたくないということです。
あなたは '@ Value'アノテーションを使用できない、またはしたくない理由について、ユースケースについて詳しく説明する必要があります。 messages.propertiesを使用して特定の領域でトークンの置換を言語固有のテキストで利用できるようにするi18nサポートの周りにはSpringの他の領域があります。 –
こんにちは@shawn ..ご回答いただきありがとうございます。私はこの質問を編集させてください – Bharath