当前位置: 首页 > 知识库问答 >
问题:

spring@Autowired能映射吗?

颛孙天宇
2023-03-14

这是地图

@Autowired
private Map<String, ISendableConverter> converters;

isendableconverter

public interface ISendableConverter {

    ISendableMsg convert(BaseMessage baseMessage);

    String getType();
}

有一些类实现isendableconverter

@Component
public class SendableVoiceMsgConverter implements ISendableConverter {

    @Override
    public ISendableMsg convert(BaseMessage baseMessage) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String getType() {
        return "VOICE";
    }
}

这可能吗?怎么做的?

共有1个答案

戎永福
2023-03-14

用类似@resource的东西试试--我没有测试过这段代码。

@Resource(name="converters")
private Map<String, ISendableConverter> converters;

@Value("#{converters}")
private Map<String, ISendableConverter> converters;

来自Spring Docs

<util:map id="converters" scope="prototype" map-class="java.util.HashMap" 
          key-type="java.lang.String" value-type="...ISendableConverter">
    <entry key="VOICE" value="sendableVoiceMsgConverter" />
</util:map>
    null
 类似资料:
  • 以下示例适用于请求,但不适用于。我的目标是让spring自动从input(请求正文和查询参数)解析: 作品: POSTlocalhost:8080/datetime 但GET也不适用: 获取localhost:8080/datetime?日期=2022-02-02 结果: org.springframework.web.bind.support.WebExchangeBindException:方

  • 我在使用新的模型和映射器时再次遇到了这个问题。我试图理解为什么我的Spring@autowired场是空的?和代码示例,但它仍然是null!我尝试了、、。 MyBatis 3.4.5、MyBatis Spring 1.3.1、MyBatis Spring Boot Autoconfigure 1.3.1、MyBatis Spring Boot Starter 1.3.1

  • 我尝试过的spring映射是。 在Spring配置中,我使用了以下内容 编辑:

  • 卡桑德拉表列: Java实体: 当执行从表列“pickuploc”中选择查询时,并没有完全映射到实体中定义的picupLocal属性。 这是我得到的回应: 使用Spring数据卡桑德拉1.5.8

  • 我在Spring MVC中测试了一些请求映射,在我的应用程序中遇到了一个奇怪的情况。我决定创建一个简单的cenario,以便您能够理解我的问题。我将首先向您展示我的项目(源代码)的详细信息,然后再开始我的问题。 我的项目中有以下目录结构: 我的Tomcat部署描述符: DispatcherServlet的我的应用程序上下文: 第1页的我的控制器类。jsp: 我的page1.jsp: 我可以访问第1

  • 我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示: