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

从Spring applicationContext自动映射到JSF bean

宁卓
2023-03-14

我有一个JSF2.0+Spring项目,当我尝试将Spring bean自动集成到JSF bean中时,会遇到一些奇怪的事情。以下是我的ApplicationContext示例:

<context:component-scan base-package="com.ticketfront" />

<util:map id="map" > 
    <entry key="rp">
        <util:map>
            <entry key="9003" value="RegP"/>
        </util:map>
    </entry>
</util:map>

下面是我的jSF bean的一部分:

@Named
@Scope("session")
public class TicketViewBean implements Serializable {

@Autowired
Map<String, Map<String, String>> map;
}

部署运行成功,但在我的jsf bean autowired属性映射中,第一个条目是正常的,就像我在applicationContext中配置的一样,但还有很多其他条目被放入map中。例如:

map = (java.util.LinkedHashMap) {map={rp={9003=RegP}}, systemEnvironment={USERPROFILE=C:\Users\Administrator, JAVA_HOME=C:\Program Files\Java\jdk1.7.0_40, NB_EXEC_TOMCAT_START_PROCESS_UUID=tomcat70:home=C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.34:base=apache-tomcat-7.0.34.0_base, SystemDrive=C:, JPDA_TRANSPORT=dt_shmem, CURRENT_DIR=C:\Program Files\Apache Software Foundation\Ap

和许多其他不同的东西,甚至是Web-XML....

我完全搞不懂为什么会这样

共有1个答案

尉迟宣
2023-03-14

正如Spring参考指南中提到的

只要预期的键类型是string,即使是类型化的映射也可以自动连线。map值将包含所有预期类型的bean,键将包含相应的bean名称:

因此,您得到的是mapmap。这将给出您自己的映射以及可以表示为映射映射的所有其他bean。大多数PropertySourcebean都是这种情况,您可以在bean中的Map中获得这些bean。(systemenvironment都是环境变量)等等。

若要修复,请在定义中添加@qualifier(“map”)或使用@resource而不是@autowired

 类似资料:
  • 问题内容: 是否有Java等效于.Net的Automapper? 问题答案: 检出推土机项目。 推土机支持简单的属性映射,复杂的类型映射,双向映射,隐式-显式映射以及递归映射。 它利用BeanUtils并对其进行扩展。

  • 例如,我有以下接口映射器: 在代码中,您可以看到映射和一些默认方法,其中包含其他映射。如何在Mapstruct映射中使用这些方法,以便Mapstruct使用这些方法在字段中填充值?

  • 问题内容: 我有一个带有四列ID,名称,颜色,形状的食用水果。 该表中的条目为: 现在,我将一个实体类Fruit映射到上表。 在我的DAO类中,代码是: 显而易见,在上面的查询中运行将返回3行。 我有一个简单的TO类FruitSearchTO 此TO符合我的查询返回的行。 但是在我的DAO中运行类似: 抛出异常java.lang.ClassCastException:[Ljava.lang.Obj

  • 我有一个Spring Boot应用程序,我使用RestTemboard调用Rest API,我收到以下JSON格式的响应: 数组“data”中的单个元素几乎没有不同的结构(上面的两个例子),我想用单个元素映射不同的类类型,这取决于元素“type”的值。 例如,值“type1”应该映射到类类型为“type1”的对象,依此类推。 我创建了如下类:MyResponse: 数据: 类型1: 类型2: 如何

  • 我正在尝试使用dozer映射将哈希集从PO对象映射到模型对象中的列表。 这是我的源和目标类:- 注意变量定义POImpl类: NoteVariableDefinition类: 我的推土机映射配置为: 每当运行此映射时,总会出现以下错误: 在这种情况下,如何将哈希集映射到ArrayList? 我是推土机映射的新手,因此也无法定义自定义转换器。 推土机文档说明它可以将集合转换为列表 推土机自动在收集类