これを引き起こす状況。
@Service
public class Test {
@Autowired
UserDao userDao;
public int getCoins() {
return userDao.getCoins(1);
}
public static void main(String[] args) throws SQLException {
Test test=new Test();
System.out.println(test.userDao);
System.out.println(test.getCoins());
}
}
この場合、iocコンテナーはDaoに注入されないため、出力は空です。上記のコードに関する限り、Testクラスはnewでインスタンスを取得できませんが、iocで取得する必要があります。
に変更
ApplicationContext ioc=new ClassPathXmlApplicationContext("ApplicationContext.xml");
Test bean = ioc.getBean(Test.class);
System.out.println(bean.userDao);
System.out.println(bean.getCoins());