Come posso inserire valori in una mappa dal file delle proprietà utilizzando l'annotazione @Value in primavera?Come iniettare una mappa usando la @Value Spring Annotation?
classeLa mia primavera Java è e Ho provato ad utilizzare il $, ma, ha ottenuto il seguente messaggio di errore
Impossibile autowire campo: private java.util.Map Test.standard; l'eccezione annidata è java.lang.IllegalArgumentException: Impossibile risolvere segnaposto 'com.test.standard' nel valore stringa "$ {} com.test.standard"
@ConfigurationProperty("com.hello.foo")
public class Test {
@Value("${com.test.standard}")
private Map<String,Pattern> standard = new LinkedHashMap<String,Pattern>
private String enabled;
}
Ho le seguenti proprietà in una. file delle proprietà
com.test.standard.name1=Pattern1
com.test.standard.name2=Pattern2
com.test.standard.name3=Pattern3
com.hello.foo.enabled=true
Sarà necessario utilizzare il linguaggio di espressione primaverile. Una domanda simile che ha usato la lista (https://stackoverflow.com/questions/27390363/spring-how-to-inject-an-inline-list-of-strings-using-value-annotation). Non sono sicuro che tu possa fare ciò che vuoi fuori dagli schemi. Questa domanda https: // StackOverflow.it/questions/28369458/how-to-fill-hashmap-from-java-property-file-with-spring-value è un po 'più importante per te. Utilizza un mappatore di proprietà personalizzato –
Che cosa vuoi esattamente nella tua mappa? Sembra che ti aspetti anche qualche tipo di conversione ad un 'Pattern'? Che tipo di classe 'Pattern' è quella? –
@Erlandsson questo è un pattern RegEx, definiremo stringhe di espressioni regolari valide nel valore – yathirigan