我試圖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