为了账号安全,请及时绑定邮箱和手机立即绑定

Spring怎么给Controller注入一个Map?

Spring怎么给Controller注入一个Map?

繁华开满天机 2019-03-01 10:31:27
我想让Spring给controller注入一个Map<String, Object>,我应该怎么配置?
查看完整描述

3 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

使用工厂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";
    }
}
查看完整回答
反对 回复 2019-03-01
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

你配置个Java Bean哈 在吧Bean注入哈

查看完整回答
反对 回复 2019-03-01
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

依赖注入不是配置文件配置的嘛?

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 1124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信