我正在使用spring 3.2.2以及将我的.properties文件中的一些字符串注入到类中的内容。但总是得到空。
在我的applicationContext.xml中:
....
<context:component-scan base-package="com.mypackage">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/
</context:component-scan>
<context:property-placeholder location="classpath:/config/core/abc.properties"/>
....
在abc.properties中:
path=testpath
在java代码中:
package com.mypackage
@Component
public class myclass implements Imyclass {
@Value("${path}")
private String path; //this always is null
...
public String getMyPath() {
return path+"myclass";
}
}
我在这里缺少什么?
[编辑]
原因是我的代码中有人正在调用新的Imyclass()。 现在还有另一个类命令Imyclass:
package com.mypackage
@Component
public class myclass2 implements Imyclass {
@Value("${path}")
private String path; //this always is null
...
public String getMyPath() {
return path+"myclass2";
}
}
调用Imyclass的函数:
public class myClassContext {
public static String getPath(...){
return getImyclass(...).getMyPath();
}
private static Imyclass getImyclass(....){
Imyclass mc=null;
if (.....) {
mc=new myclass();
}
else{
mc=new myclass2();
}
return state;
}
}
Spring管理实例的更好方法是什么,@ value将正确注入?
我是否必须将两个类作为属性注入myClassContext,或者对myclass和myclass2使用@Configurable?