2016-07-12 6 views
1

doman Datei zu erhalten:Wie den Wert der Objekte im @Pattern

@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 Wert ist festgelegt

ändern @Pattern:

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

** Ich möchte Regexp-Wert ersetzen, stattdessen Eigenschaften verwenden **

Wie?

Antwort

0

nicht aus anderen Eigenschaften, aber wie etwa:

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; 

... 

In Java EE 7 können Sie Eigenschaften Werte wie diese injizieren:

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

Aber ich bin nicht sicher, dass Sie dann verwenden können, dass String in einer anderen JPA Annotation einfach so. Versuche es. Für Details zur Verwendung von @ConfigurationValue siehe zum Beispiel What are Best Practice Recommendations for Java EE 7 Property File Configuration?

Verwandte Themen