Mam Map<String, String>
i chciałbym powiedzieć Spring, aby użył tego przy tworzeniu fasoli i rozwiązywaniu obiektów zastępczych. Jaki jest najłatwiejszy sposób na zrobienie tego? Oto przykład:Jak mogę nakazać Springowi użycie mapy Java do rozwiązania zastępczego obiektu?
@Component
public class MyClass {
private String myValue;
@Autowired
public MyClass(@Value("${key.in.map}") String myValue) {
this.myValue = myValue;
}
public String getMyValue() {
return myValue;
}
}
public static void main(String[] args) {
Map<String, String> propertyMap = new HashMap<>();
propertyMap.put("key.in.map", "value.in.map");
ApplicationContext ctx = ...;
// Do something???
ctx.getBean(MyClass.class).getMyValue(); // Should return "value.in.map"
}
Czy można wstrzyknąć klucz mapy na właściwość fasoli sprężystej, która jest drugorzędna. Przede wszystkim robisz 'nową HashMap <>();'. Kontekst wiosny nie będzie w stanie rozpoznać tego komponentu bean. Będziesz musiał uzyskać ten komponent również z kontekstu Spring, wykonując coś w stylu 'ctx.getBean (java.util.HashMap.class)'. Następnie [here] (http://stackoverflow.com/questions/27285202/inject-map-of-beans-using-spring-from-properties-file) jest przykładem, gdzie użytkownik mógł uzyskać dostęp do właściwości za pomocą '
@ Amit.rk3 Dzięki za wejście Amrit. Nie jestem pewien, czy w pełni rozumiesz ustawienie. Nie jestem zainteresowany robieniem 'ctx.getBean (HashMap.class)'.Mam odwzorowanie ciągu znaków na ciąg i chciałbym powiedzieć Springowi, aby używał tej mapy do rozwiązywania symboli zastępczych właściwości. – Max
OK. W swoim pytaniu wspomniałeś o mapie java. To mnie zdezorientowało :). W każdym razie, aby po prostu mapować ciągi z listy właściwości, możesz zachować wpisy w pliku .properties i załadować je. Istnieje wiele odpowiedzi na to. –