如何在@Pattern中获取属性文件的值

时间:2016-07-12 03:56:08

标签: java

多拉:

@PropertySource(value = "classpath:valid.properties")
public class Role implements Serializable {

@Id
private String id;

@Pattern(regexp = "^[a-zA-Z0-9_]{6,32}$")
private String name;

valid.properties:

username=^[a-zA-Z0-9_]{6,32}$
password=^[a-zA-Z]\w{5,17}$
email=^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

regexp 值已修复

修改@Pattern:

 @Pattern(regexp = "${username}")  // compile Error
 private String name;

**我想替换正则表达式值,而不是使用属性**

怎么办?

1 个答案:

答案 0 :(得分:0)

不是来自外部属性,而是如何:

private static final String USERNAME = "^[a-zA-Z0-9_]{6,32}$";
private static final String PASSWORD = "^[a-zA-Z]\w{5,17}$";
private static final String EMAIL = "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$";

@Pattern(regexp = USERNAME)
private String name;

...

在Java EE 7中,您可以注入如下属性值:

@Inject @ConfigurationValue(value="username")
private String userName;

但是我不确定你是否可以在另一个JPA注释中使用那个String。试试看。 有关使用@ConfigurationValue的详细信息,请参阅What are Best Practice Recommendations for Java EE 7 Property File Configuration?