@Autowired抱空指针异常解决方案 先给总结,再给实例 前提: 类B里用了@Autowired注解,类A和类B都加了@Component或者其他形式如@Service这样都注解。 结果: 如果类A 想访问类B,采用new B()的方式,则在类B里没法访问bean对象(也就是加了@Autowired的对象),会报空指针; 如果在类A中注入类B,则在类B里可以访问注入的bean对象 原因:@Autowired注入即将对象注入到Spring的IOC容器内,而new出来的实例脱离了Spring的管理,两个对象不在一个管理者管理下,也即无法联系起来 举个最简单的例子: controller调用service, @Controller public class TestController { @Autowired TestService testService; @RequestMapping(“/hello”) public void getTest(){ testService.sayHello(); new TestServiceImpl().sayHello(); } } @Service public class TestServiceImpl implements TestService { @Autowired ApplicationContext ac; @Override public void sayHello() { System.out.println(“—-> ” + ac); System.out.println(“—-> ” + “hello world”); } } 看结果,一目了然
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/26430.html