[英]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.