比如 你
class LoginService {
@Autowired
private UserDao userDao;
public void execute(){
...
userDao.insert(...);
...
}
}
里面的userDao这里报空指针错误,其中的一个原因是你没有给userDao这个成员变量写set方法,这样spring就没有办法帮你自动的装载。
---
我刚发现不是上面说的这个原因。
而是我在另外一个地方使用了LoginService,比如 TestAction吧
class TestAction{
public void fun1(){
LoginService loginService = new LoginService(); //错就在这里
loginService......
}
}
正确的做法:
class TestAction{
@Autowired
private LoginService loginService;
public void fun1(){
loginService......
}
}
意思就是说,你不能自己人工的去new一个LoginService,这样做的话,spring是不会帮你
把LoginService里的那个需要被Autowired的userDao给装载上的。
你通过写
@Autowired
private LoginService loginService;
这样就是spring帮你把这个loginService给你实例化出来,那么在那个过程中,它就会帮你把里面的那个userDao根据你当初定义的方式给你装载上。
class LoginService {
@Autowired
private UserDao userDao;
public void execute(){
...
userDao.insert(...);
...
}
}
里面的userDao这里报空指针错误,其中的一个原因是你没有给userDao这个成员变量写set方法,这样spring就没有办法帮你自动的装载。
---
我刚发现不是上面说的这个原因。
而是我在另外一个地方使用了LoginService,比如 TestAction吧
class TestAction{
public void fun1(){
LoginService loginService = new LoginService(); //错就在这里
loginService......
}
}
正确的做法:
class TestAction{
@Autowired
private LoginService loginService;
public void fun1(){
loginService......
}
}
意思就是说,你不能自己人工的去new一个LoginService,这样做的话,spring是不会帮你
把LoginService里的那个需要被Autowired的userDao给装载上的。
你通过写
@Autowired
private LoginService loginService;
这样就是spring帮你把这个loginService给你实例化出来,那么在那个过程中,它就会帮你把里面的那个userDao根据你当初定义的方式给你装载上。