zoukankan      html  css  js  c++  java
  • 关于Spring管理的类如何创建对象

     今天项目中出现了空指针错误,其实一看这个错误我就知道是哪里错了。而且以前也总是说,没有真正的改过啊。今天把改进方法和大家共享。现在我们的项目中,大多数我们的管理方式都是交由Spring去管理,至于好处我也不多于的赘述了,用的人都知道,Spring也把他的管理发挥到了极致,真的是到了极致啊。以至于交给Spring管理的如果实例化其对象就会报错,错误报的是空指针错误,原因估计是因为没有注入进来,我们实例化对象的时候破坏的Spring的管理。

        http://blog.csdn.net/kobe_lzq/article/details/4516362           上面说了一堆的废话,下面说说解决方案,遇到这样的事以后呢,我们不用着急,既然我们创建不了它的对象了,我们可以选择另一种方式。就是通过读取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相同即可。
    
    
    
    
    暂时我只用到这两种方法
  • 相关阅读:
    OpenVINO Model Server的服务化部署——step3(django服务构建)
    (5)名称空间 namespace 和 using 声明
    (4)#include 指令
    (3)注释
    (2)简单的程序
    (1)Hello World
    javaScript 错误学习 -- throw、try 、catch和 finally
    js 如何在数字前面自动补零,生成序列号、单据号
    vs2015项目运行出现“无法启动IIS Express Web服务器”,如何解决
    Sql Server 2008 如何将数据表导出Excel文件?
  • 原文地址:https://www.cnblogs.com/svennee/p/4080697.html
Copyright © 2011-2022 走看看