初学spring,我在dao层初始化c3p0的时候,使用@Resource注解新建对象是发现注入为null,告诉我 java.lang.NullPointerException。
公司主营业务:网站建设、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出西乡塘免费做网站回馈大家。
@Repository public class UserDaoImpl implements UserDao { @Resource ComboPooledDataSource dataSource;
反复检查了配置文件,没有发现任何问题,最后在同学的帮助下终于发现了问题的所在,特记录于此,一个教训。
问题就出在我的service层,我在service层new了一个dao被@Repository注解的类的对象:
@Service public class UserServiceImpl implements UserService { @Override public int regUser(User user) { UserDao userDao = new UserDaoImpl();
这样new出来的被@Repository注的类解对象是不能被spring注入的。解决办法如下:
同样使用@Resource注解的方式创建UserDao对象:
@Service public class UserServiceImpl implements UserService { @Resource UserDao userDao; @Override public int regUser(User user) { }
问题解决
总结问题:
被Spring的注解注解过类的对象不能new,要用注解的方式创建对象
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。