用spring容器注入userManager和userDao,在其他类中需要调用UserManagerImpl中的方法时,直接
new UserManagerImpl().totalUsers()时抛出空指针异常,但是在UserRegisterAction类中可通过userManager正常访问。各位大虾帮帮我吧!!!部分代码如下:@Component("userManager")
public class UserManagerImpl implements UserManager {
private UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
@Resource
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} public boolean exists(User u) throws Exception {
return userDao.checkUserIsExistedByName(u.getUser_name());
}
public boolean correct(User u) throws Exception{
return userDao.checkUserIsCorrectByNameAndPassword(u.getUser_name(), u.getPassword());
}
public void add(User u) throws Exception {
userDao.save(u);
} public List<User> getAllUsers() throws Exception {
return userDao.getAllUsers();
} public User loadById(int id) throws Exception {
return userDao.loadById(id);
} public int totalUsers() throws Exception {
return userDao.totalUsers();
}
}
@Component(value = "userDao")
public class UserDaoImpl implements UserDao { private HibernateTemplate hibernateTemplate; public void save(User u) {
hibernateTemplate.save(u);
}
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
} @Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
} public boolean checkUserIsExistedByName(String username) {
List<User> users = hibernateTemplate
.find("from User u where u.user_name ='" + username + "'");
if (users != null && users.size() > 0)
return true;
return false;
} public boolean checkUserIsCorrectByNameAndPassword(String username, String password) {
List<User> users = hibernateTemplate
.find("from User u where u.user_name ='" + username
+ "' and u.password = '" + password + "'");
if (users != null && users.size() > 0)
return true;
return false;
} public List<User> getAllUsers(){
List<User> users = (List<User>)hibernateTemplate.find("from User");
return users;
} public int totalUsers() {
return hibernateTemplate.loadAll(User.class).size();
} public User loadById(int id) {
User users = (User)hibernateTemplate.load(User.class, id);
return users;
}
}
public class UserRegisterAction extends ActionSupport implements ModelDriven { UserRegister_VO userInfo = new UserRegister_VO();
private UserManager userManager;
public Object getModel() {
return userInfo;
} public UserRegister_VO getUserInfo() {
return userInfo;
} public void setUserInfo(UserRegister_VO userInfo) {
this.userInfo = userInfo;
} public UserManager getUserManager() {
return userManager;
} public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
}
new UserManagerImpl().totalUsers()时抛出空指针异常,但是在UserRegisterAction类中可通过userManager正常访问。各位大虾帮帮我吧!!!部分代码如下:@Component("userManager")
public class UserManagerImpl implements UserManager {
private UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
@Resource
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} public boolean exists(User u) throws Exception {
return userDao.checkUserIsExistedByName(u.getUser_name());
}
public boolean correct(User u) throws Exception{
return userDao.checkUserIsCorrectByNameAndPassword(u.getUser_name(), u.getPassword());
}
public void add(User u) throws Exception {
userDao.save(u);
} public List<User> getAllUsers() throws Exception {
return userDao.getAllUsers();
} public User loadById(int id) throws Exception {
return userDao.loadById(id);
} public int totalUsers() throws Exception {
return userDao.totalUsers();
}
}
@Component(value = "userDao")
public class UserDaoImpl implements UserDao { private HibernateTemplate hibernateTemplate; public void save(User u) {
hibernateTemplate.save(u);
}
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
} @Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
} public boolean checkUserIsExistedByName(String username) {
List<User> users = hibernateTemplate
.find("from User u where u.user_name ='" + username + "'");
if (users != null && users.size() > 0)
return true;
return false;
} public boolean checkUserIsCorrectByNameAndPassword(String username, String password) {
List<User> users = hibernateTemplate
.find("from User u where u.user_name ='" + username
+ "' and u.password = '" + password + "'");
if (users != null && users.size() > 0)
return true;
return false;
} public List<User> getAllUsers(){
List<User> users = (List<User>)hibernateTemplate.find("from User");
return users;
} public int totalUsers() {
return hibernateTemplate.loadAll(User.class).size();
} public User loadById(int id) {
User users = (User)hibernateTemplate.load(User.class, id);
return users;
}
}
public class UserRegisterAction extends ActionSupport implements ModelDriven { UserRegister_VO userInfo = new UserRegister_VO();
private UserManager userManager;
public Object getModel() {
return userInfo;
} public UserRegister_VO getUserInfo() {
return userInfo;
} public void setUserInfo(UserRegister_VO userInfo) {
this.userInfo = userInfo;
} public UserManager getUserManager() {
return userManager;
} public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
}
解决方案 »
- j2ee报表导出
- 求一个ajax调用java方法得例子
- spring中如何把log4j切片到service或者dao中?
- 求助啊,spring的同志们进来帮我看看!
- Hibernate如何稳定连接多数据库?
- 请问用JBOSS中的jboss-j2ee.jar包里面怎么缺少Stateless呢?
- java在ftp上创建文件夹
- 在STRUTS 中如何避免回调!急急!!!!
- java.lang.OutOfMemoryError
- struts里关于ApplicationResources_ZH的使用问题
- 关于HttpClient的使用
- eclipse-javaee的版本有没有类似myeclipse的重新布署功能?
---------
解决方案:从Spring IOC容器中取得userManagerImpl对象
ApplicationContext context = new ClassPathXmlApplicationContext("Class路径下Spring配置文件名名称");
UserManager userManager = (UserManager)context.getBean("userManagerImpl");//执行此操作时Spring IOC容器才真正帮你完成依赖注入 也就是将UserDao 注入到你的UserManagerImpl
userManager.totalUsers(); 全手打的。希望能帮助你。