关于Spring管理的类如何创建对象。
来源:互联网 发布:python注释变什么颜色 编辑:程序博客网 时间:2024/04/28 11:07
Blog是我刚开始接触java的时候申请的,写的一点点的自己领悟与点滴,现在看看有的东西已经忘却了,有的是简单的不值得一提,也挺有意思自己的一个成长历程。
今天项目中出现了空指针错误,其实一看这个错误我就知道是哪里错了。而且以前也总是说,没有真正的改过啊。今天把改进方法和大家共享。现在我们的项目中,大多数我们的管理方式都是交由Spring去管理,至于好处我也不多于的赘述了,用的人都知道,Spring也把他的管理发挥到了极致,真的是到了极致啊。以至于交给Spring管理的如果实例化其对象就会报错,错误报的是空指针错误,原因估计是因为没有注入进来,我们实例化对象的时候破坏的Spring的管理。
上面说了一堆的废话,下面说说解决方案,遇到这样的事以后呢,我们不用着急,既然我们创建不了它的对象了,我们可以选择另一种方式。就是通过读取Spring的配置文件,获取其中的bean这样来获取此对象,即可以解决。
例如:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");
//用此方法读取applicationContext.xml的配置文件。需要注意的是ac.getBean("beanId");获取上来的是一个Object
还需要注意的是他读取的这个配置文件是从系统文件根路径开始找。如果想用虚拟路径classpath需要写成如下模式:
ApplicationContext ac = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
ac.getBean("beanId");
同样还可以用:
ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:appcontext.xml");
此类模式去读取配置文件。
换汤不换药,思想就是我们不能直接实例化他的对象,但是我们可以从配置中把他们读出来。
还可以用另外一个模式就是:
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext());
ac1.getBean("");
此方法可以把所有交给Spring管理的都给获取出来,只需要ac1.getBean("");""中的名字与配置文件中的<bean id=""></bean>id相同即可。
暂时我只用到这两种方法,现在的我还只是初学者,希望我的一点一滴可以给其他的朋友带来帮助即可。
具体深层次的代码我不知道原理,希望有大牛看到我的文章给予指点。
- 关于Spring管理的类如何创建对象。
- Spring的bean管理-注解创建对象
- Spring的bean管理(注解创建对象)
- Spring的bean管理(注解创建对象)
- 【Spring】非SPRING管理的对象要引用SPRING容器管理的对象?对象之间如何引用?
- Spring的如何通过bean创建一个对象,并赋值。
- 第四章 Spring.Net 如何管理您的类___对象的作用域
- 第四章 Spring.Net 如何管理您的类___让对象了解自己的容器
- 第四章 Spring.Net 如何管理您的类___自定义对象行为
- Spring 使new方法创建的对象可以引用spring管理的bean.
- 关于JAVA类对象数组的创建
- c++中关于类对象的创建
- Spring讲述如何创建hibernate配置文件对象
- 【Spring】bean对象的创建
- Spring 研究spring创建对象的方式
- 【Spring】Spring创建对象的各种方法
- spring 之脱离容器管理创建的对象进行依赖注入
- 关于Session对象的创建
- 装贵族、装小资的一分钟速成法。很囧很强大~
- JavaScript与XML
- 应用性能管理技术:最受欢迎的APM技术网站
- STL通用算法
- 编码与解码问题的总结
- 关于Spring管理的类如何创建对象。
- 真正的宽带上网加速方法
- 线性表的基本操作
- [双语阅读]世界最长寿狗去世 狗龄147岁
- arm-linux-gcc-4.3.2 with EABI
- 用Oracle sqlldr导入文本文件TXT 总结
- 准备启动一个开源项目 - 技术族谱 - 先期利用Goolge云计算平台
- 可爱的Python
- Stream复制