Spring@Autowired自动注入Dao,取出为null

造成这种原因的一种情况。

@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());
发布了21 篇原创文章 · 获赞 0 · 访问量 721

猜你喜欢

转载自blog.csdn.net/D1124615130/article/details/104436655