我想让Spring给controller注入一个Map<String, Object>,我应该怎么配置?
3 回答
LEATH
TA贡献1936条经验 获得超7个赞
使用工厂bean可以实现,参考代码如下:
1:创建map的工厂bean
package com.blog.factory;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.FactoryBean;
/**
* @author zl
*/
public class ConfigMapFactory implements FactoryBean<Map<String,Object>> {
@Override
public Map<String,Object> getObject() throws Exception {
Map<String,Object> configMap = new HashMap<String,Object>();
configMap.put("hello", "world");
return configMap;
}
@Override
public Class<?> getObjectType() {
return Map.class;
}
@Override
public boolean isSingleton() {
return true;
}
}2:spring的配置文件中配置:
<bean id="configMap" class="com.blog.factory.ConfigMapFactory"></bean>
3:controller层注入
@Controller
public class BlogController extends BaseController{
@Autowired
private CommentService commentService;
@Autowired
private BlogService blogService;
@Resource(name="configMap")//这边需要使用Resource注解
private Map<String,Object> configMap;
@RequestMapping("/")
public String index(Model model){
System.out.println(configMap.get("hello"));//打印出world
return "index";
}
}
添加回答
举报
0/150
提交
取消
