Spring整合Hibernate(都是Annotation方式),无法注入的问题
我在Dao层新建了一个UserDao
@Component
public class UserDao extends HibernateDaoSupport {
@Resource(name="sessionFactory")
public void setSuperSessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
@Transactional
public User getUserByName(String name) {
User tmp = new User();
System.out.println("准备从数据库中取出该USER对象信息");
tmp = (User)this.getHibernateTemplate().get(User.class, 1);
return tmp;
}
}
中间层建了一个UserService
@Component
public class UserService {
private UserDao userDao;
public boolean checkUser(User user) {
User tmp = userDao.getUserByName(user.getName());
System.out.println("USER:" + user.getName() + "\t" + user.getPassword() + "\t" + user.getAge());
System.out.println("TMP :" + tmp.getName() + "\t" + tmp.getPassword() + "\t" + tmp.getAge());
tmp.setPassword("asdfasdf");
return true;
}
@Autowired
public void setUserDao(UserDao userDao) {
System.out.println("为UserService注入UserDao");
this.userDao = userDao;
}
}
启动Tomcat的时候出现无法注入userDao的错误,可是我把UserDao中getUserByName方法上面的@Transational注解去掉时,这样就可以正常注入了,这是怎么回事,求解。。。 --------------------编程问答-------------------- 传送门:http://blog.csdn.net/qq183293/article/details/7884127
,不解释 --------------------编程问答-------------------- 你加的位置不对吧!有些注解是添加在类上面的 --------------------编程问答-------------------- 自动注入sessionFactory也要加@Autowired
--------------------编程问答-------------------- 你就一个查询有必要用事物吗....也许是你的事物没有配好.再者,你如果用hibernatedaosuppo的话,你的userDao一般都是用作顶层dao,让其他的dao去继承userDao,
@Resource(name="sessionFactory")
@Autowired
public void setSuperSessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
补充:Java , Java EE