`
have_life
  • 浏览: 146826 次
社区版块
存档分类
最新评论

@Autowired 的成员变量,报空指针错误

    博客分类:
  • java
 
阅读更多
比如 你
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根据你当初定义的方式给你装载上。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics