spring @value返回null

时间:2016-05-27 22:45:43

标签: java spring web

我正在使用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?

0 个答案:

没有答案