博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
new出来的对象无法调用@Autowired注入的Spring Bean
阅读量:5809 次
发布时间:2019-06-18

本文共 1828 字,大约阅读时间需要 6 分钟。

@Autowired注入Spring Bean,则当前类必须也是Spring Bean才能调用它,不能用new xxx()来获得对象,这种方式获得的对象无法调用@Autowired注入的Bean。

1、类1,加入Spring Pool

public class PersonServiceImpl implements PersonService{    public void save(){        System.out.println("This is save for test spring");    }    public List
findAll(){ List
retList = new ArrayList
(); for(int i=1;i<10;i++){ retList.add("test"+i); } return retList; }}//加入Spring Pool

2、类2,@Autowired类1,并且也加入Spring Pool

public class ProxyPServiceImpl implements ProxyPService {       public void save(){        System.out.print("this is proxy say:");        personService.save();    }    public List
findAll(){ System.out.print("this is proxy say:"); return personService.findAll(); } @Autowired PersonService personService; }

3、直接new类2,则执行其方法时出null pointer错误

ProxyPService  proxyPService = new ProxyPServiceImpl();proxyPService.save();执行报错:java.lang.NullPointerException    at com.machome.testtip.impl.ProxyPServiceImpl.save(ProxyPServiceImpl.java:18)    at com.machome.testtip.TestSpring2.testSave(TestSpring2.java:34)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

4、解决:用Spring方式获取类2的Bean,再执行其方法,没问题

ProxyPService  proxyPService = null;try {                String[] confFile = {"spring.xml"};                ctx = new ClassPathXmlApplicationContext(confFile);                proxyPService = (ProxyPService)ctx.getBean("ProxyPServiceImpl");} catch (Exception e) {                e.printStackTrace();}proxyPService.save();执行:this is proxy say:This is save for test spring

 

参考:

转载地址:http://qgcbx.baihongyu.com/

你可能感兴趣的文章
你可能学了假流程图,7步教你绘制知识点汇总流程图
查看>>
小米手机卖不动了?
查看>>
优秀的Mac网络性能监控工具——“PeakHour”
查看>>
圣杯布局和双飞翼布局
查看>>
https证书怎么配置?怎么进行https认证 ?
查看>>
线程安全和可重入函数的区别与联系
查看>>
Linux Apache SSL证书安装
查看>>
Android高手应该精通哪些内容?(转)
查看>>
Linux 文件系统
查看>>
mysql调优
查看>>
【博客话题】毕业多年,我们再相会
查看>>
windows中禁止U盘写入
查看>>
JPA的Embeddable注解
查看>>
对ThreadLocal的源码解读
查看>>
Delegate.Combine
查看>>
mysql 复制出错又一例
查看>>
net命令
查看>>
Linux常用命令——文件管理(一)
查看>>
linux lvm快速建立逻辑卷,简单快照,以及应用
查看>>
华为S9306破解console密码及清空配置
查看>>