spring+ibatis整合的一个奇怪问题,问题解决给分
各位好,现在很郁闷,请各位帮帮忙呢。
我在java类中测试:
Java code
ApplicationContext context;
System.out.println("Initalizing application");
context=new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("Getting testDao");
UserDAO2 testDao=(UserDAO2)context.getBean("userDAO2");
TUser user = testDao.getUserByUsername("xuetao");
System.out.println(user.getSex());
测试通过。
在页面上调用:
Java code
UserDAO2 userDAO2=new UserDAO2();
TUser user = userDAO2.getUserByUsername("xuetao");
System.out.println(user.getSex());
但是在页面上报错:
java.lang.IllegalArgumentException: No SqlMapClient specified
org.springframework.util.Assert.notNull(Assert.java:90)
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:155)
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:222)
,好像是类中的 sqlMapClient 没有映射上呢。
谢谢帮忙出出主意。
------解决方案--------------------不要在页面上调用dao
要调也不能直接new出来,因为new出来的没有注入sqlMapClient
所有你的dao对象要从spring容器出去取.
------解决方案--------------------楼上说的很明白了,new的对象是无法得到spring注入其中的变量的,要从容器里取
------解决方案--------------------说白了就是用了Spring后就不能直接new dao出来了!必须重容器里取
------解决方案--------------------建议LZ先看一些java基础书籍在来用spring