繁体   English   中英

春天-属性过滤到地图 <String, Class<Object> &gt;

[英]Spring - properties filte to Map<String, Class<Object>>

我正在尝试加载将属性文件作为参数传递给构造函数的类,但遇到强制转换异常: java.lang.String cannot be cast to java.lang.Class 有人可以帮忙吗?

这是我的代码:

myMap.properties

BAR=com.mycomp.myapp.Bar

application-context.xml看起来像这样:

<util:properties id="myMap" 
    location="classpath:myMap.properties" 
    local-override="false" 
    value-type="java.lang.Class" />   


<bean id="foo" class="com.mycomp.myapp.Foo">
    <constructor-arg name="myMap" ref="myMap"/>
</bean>

Foo.java

public class Foo {
    private Map<String, Class<Object>> myMap;

    public Foo(Map<String, Class<Object>> myMap){
        this.myMap = myMap;
        Class<Object> barClass = myMap.get("BAR"); //failure point
    }
}

您可以像这样:

内容:

<context:property-placeholder location="classpath:myMap.properties"/>
<bean id="foo" class="com.mycomp.myapp.Foo">
  <constructor-arg value="${BAR}" />
</bean>

Foo:

public class Foo {
private String bar;

  public Foo(String bar){
      this.bar = bar;
  }
}

或者,如果您确实需要整个文件,则只需将路径传递到属性文件,然后将其加载到构造函数中即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM