我想插入Spring基础知识:使用Spring的@Value动态注入值。我该怎么办?
我尝试使用代码
@Value("#{{2: 'Catch22', 22: '1984', 32: 'Pride and Prejudice'}}")
但我有例外
private Map <Integer,String>studentTeacherMap;
@Value("#{{2: 'Catch22', 22: '1984', 32: 'Pride and Prejudice'}}")
public Map<Integer, String> loki()
return studentTeacherMap;
我希望输出是
2= Catch22, 22= 1984, 32= Pride and Prejudice
但最终还是例外:
Cannot handle (123) '{'
答案 0 :(得分:1)
如果您想将此地图注册为Bean,请考虑将其放入@Configuration
带注释的类中:
@Configuration
public class AppConfiguration {
@Value("#{{2: 'Catch22', 22: '1984', 32: 'Pride and Prejudice'}}")
private Map<Integer, String> lokiMap;
@Bean
public Map<Integer, String> lokiMap() {
return lokiMap;
}
}
然后将此bean注入您要使用的类中:
@Autowired
private Map<Integer, String> lokiMap;
或者您可以直接使用该地图而无需将其声明为Bean,但是在这种情况下,您不需要@Autowired
批注,只需将@Value
放在地图下:
@Value("#{{2: 'Catch22', 22: '1984', 32: 'Pride and Prejudice'}}")
private Map<Integer, String> lokiMap;