java spring为ApplicationContext提供有三种实现(dubbo-consumer.xml)

来源:互联网 发布:如何查看淘宝联盟pid 编辑:程序博客网 时间:2024/06/05 15:21

spring为ApplicationContext提供有三种实现(举例)

       spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和XmlWebApplicationContext,其中XmlWebApplicationContext是专为Web工程定制的。使用举例如下:
1. FileSystemXmlApplicationContext
Java代码  收藏代码
  1. 注意:src/main/resources & src/test/resources 不能同时配置相同的dubbo-consumer.xml,否则会导致读取dubbo-consumer.xml失败
  2. //eg. 
  3. private static FileSystemXmlApplicationContext ctx = new FileSystemXmlApplicationContext(
    new String[]{"classpath*:/config/dubbo-consumer.xml"});

    public static BeanApi beanApi() {
    return (BeanApi)ctx.getBean("beanApi");
    }

  4. //eg1.  
  5. ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); //加载单个配置文件  
  6.   
  7. //eg2.   
  8. String[] locations = {"bean1.xml""bean2.xml""bean3.xml"};  
  9. ApplicationContext ctx = new FileSystemXmlApplicationContext(locations ); //加载多个配置文件  
  10.   
  11. //eg3.        
  12. ApplicationContext ctx =new FileSystemXmlApplicationContext("D:/project/bean.xml");//根据具体路径加载文件  
 
2. ClassPathXmlApplicationContext
Java代码  收藏代码
  1. //eg.
  2. ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:/config/dubbo-consumer.xml");

    BeanApi beanApi = (BeanApi)context.getBean("beanApi");


  3. //eg1.  
  4. ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");  
  5.   
  6. //eg2.   
  7. String[] locations = {"bean1.xml""bean2.xml""bean3.xml"};  
  8. ApplicationContext ctx = new ClassPathXmlApplication(locations);  
          注:其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext与BeanFactory的xml文件定位方式一样是基于路径的。

3. XmlWebApplicationContext
     
Java代码  收藏代码
  1. eg1.   
  2. ServletContext servletContext = request.getSession().getServletContext();      
  3. ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);   
  
注 : 一般是 ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());

1 0
原创粉丝点击