我的会计实例有什么问题? Calculator bean不会注入到Accoount中。存款方法中存在空指针异常,因为计算器为空。春天不注入我的豆
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/META-INF/spring/context.xml")
public class DITestJavaTest extends Assert {
@Test
public void diTest() {
Account account = new Account(500);
account.deposit(500);
assertEquals("balance is 1000", 1000, account.getBalance(), 0.0001);
}
}
public class Account {
@Autowired
private ICalculator calculator;
private double balance;
public Account() {
balance = 0;
}
public Account(double balance) {
this.balance = balance;
}
public void deposit(double amount) {
balance = calculator.add(balance, amount);
}
public void withdraw(double amount) {
balance = calculator.subtract(balance, amount);
}
public double getBalance() {
return balance;
}
}
@Component
public class Calculator implements ICalculator {
@Override
public double add(double summand1, double summand2) {
System.out.println("Main implementation with " + Calculator.class.getName() + "addition");
BigDecimal result = round(summand1 + summand2);
return result.doubleValue();
}
@Override
public double subtract(double minuend, double subtrahend) {
System.out.println("Main implementation with " + Calculator.class.getName() + "subtraction");
BigDecimal result = round(minuend - subtrahend);
return result.doubleValue();
}
private BigDecimal round(double amount) {
return new BigDecimal(amount).setScale(2, BigDecimal.ROUND_HALF_UP);
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="org.example.banking" />
<context:annotation-config />
</beans>
尝试这个。没有帮助.. – myborobudur 2013-03-28 10:09:05
包conatining Account类的名字是什么? – 2013-03-28 10:30:54
src/main/java/org/example/banking/Account.java - src/main/java/org/example/banking/Calculator.java - src/main/java/org/example/banking/ICalculator.java – myborobudur 2013-03-28 11:35:36