我试图Autowire一个bean的实现,但它返回一个空指针异常。春季4 @Autowire没有正确绑定?
package org.com.api;
public interface Multiply {
public int multipler(int a, int b);
}
package org.com.core;
import org.com.api.Multiply;
public class MultiplyImpA implements Multiply {
public int multipler(int a, int b){
return a*b;
}
}
package org.com.core;
import org.com.api.Multiply;
public class MultiplyImpB implements Multiply {
public int multipler(int a, int b){
int total = 0;
for(int i = 1; i <=b; i++){
total += a;
}
return total;
}
}
package org.com.Service;
import org.com.api.Multiply;
public Calculator {
@Autowire
private Multiply multiply;
public int calcMultiply(int a, int b){
return multiply.multipler(a,b);
}
}
在我的applicationContext.xml我已经添加了以下
<bean id="multiply" class="org.com.core.MultiplyImpA" scope="prototype"/>
现在在运行时,我收到了NullPointerExpection。乘以零。
用于测试目的我试过这个。它的工作原理,我明白在这里我明确地获得Bean。所以这意味着autowire不起作用?有什么我失踪?
Multiply m = (Multiply)factory.getBean("multiply");
System.out.println(m.multiplier(2,4);
发布您的spring.xml。 – 2015-04-01 03:07:12
是的,请spring.xml。你如何实例化'Calculator'? – fateddy 2015-04-01 04:55:07
现在我正在从junit测试用例中调用。 – user1364861 2015-04-01 05:18:42