Jak mogę wprowadzić wartości do mapy z pliku właściwości za pomocą adnotacji @Value na wiosnę?Jak wstrzyknąć mapę za pomocą adnotacji @Value Spring?
klasaMy Wiosna Java i próbowałem za pomocą $, ale mam następujący komunikat o błędzie
Nie można autowire pola: prywatny java.util.Map Test.standard; Wyjątkiem jest zagnieżdżona java.lang.IllegalArgumentException: Nie można rozwiązać zastępczy „com.test.standard” w wartości ciągu „$ {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;
}
Mam następujące właściwości w. właściwości pliku
com.test.standard.name1=Pattern1
com.test.standard.name2=Pattern2
com.test.standard.name3=Pattern3
com.hello.foo.enabled=true
Będziesz musiał użyć języka wyrażenia wiosennego. Podobne pytanie, które wykorzystano na liście (https://stackoverflow.com/questions/27390363/spring-how-to- inject-an-inline- list-of--strings-using-value-annotation). Nie jestem pewien, czy możesz zrobić to, co chcesz, po wyjęciu z pudełka. To pytanie https: // stackoverflow.com/questions/28369458/how-to-fill-hashmap-from-java-property-file-with-spring-value jest trochę bardziej do twojego punktu. Używa niestandardowego mapera właściwości –
Czego dokładnie chcesz na mapie? Wygląda na to, że spodziewasz się pewnego rodzaju konwersji do "wzoru"? Jakiego rodzaju jest to klasa "Pattern"? –
@Erlandsson jest to wzorzec RegEx, zdefiniujemy poprawne ciągi wzorów regex w wartości – yathirigan