有没有方法可以在不使用@Value
注释的情况下从外部属性文件中读取文本。例如:为application.propertiesSpring引导将Java注释中的配置属性/消息外部化
var.foo="hello"
我可以在一个Spring bean使用
@Value("${var.foo}") String value;
为类变量注入它。有没有办法在不使用@Value
注释的情况下包含此属性。就像JSR bean验证一样。
@NotNull(message={custom.notnull})
,你在外部化ValidationMessages.properties文件该属性值。
例如,如果我有一个资源(网络组件)类,如果我不得不使用扬鞭注释记录他们,
@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注释和Spring,并不特定于Swagger。我指定Swagger的原因是,如果就像hibernate验证一样,Java库可以选择在外部ValidationMessages.properties文件中指定这些消息,并且spring默认会选择它(或可以配置)。
Swagger是否提供这样的选项?如果没有,我如何设置一个?
潜在的问题是,我不想混淆我的代码/逻辑与文档相关的数据(元数据)。
您需要提供关于您的用例的更多细节,以了解为什么您不能或不想使用'@ Value'注释。 Spring的其他领域围绕i18n支持,它使用messages.properties来允许某些区域利用语言特定的文本来替换令牌。 –
嗨@shawn ..感谢您的回复。让我编辑这个问题 – Bharath