zoukankan      html  css  js  c++  java
  • Spring——IOC容器(常用装载文件方式)

    一、BeanFactory加载文件(默认【懒加载】配置,加载文件时,不会生成实例,仅在getBean()获取该实例时new对象)

    1.FileSystemResource 系统文件路径装载与解析xml文档

    ① 相对路径
    Resource resource =  new FileSystemResource("applicationContext_1.xml");
    Resource resource =  new FileSystemResource("config/applicationContext_2.xml");
    ② 绝对路径
    Resource resource =  new FileSystemResource("E:\zhaorong\workspace\day01_spring_ioc容器\applicationContext_1.xml");
    

    注意:相对路径是相对于项目根目录

    1 BeanFactory factory= new XmlBeanFactory(resource);

    2. ClassPathResource 根据类路径装载并解析xml文档(推荐这种方式)

    1 Resource resource = new ClassPathResource("config/applicationContext_3.xml");
    2 BeanFactory factory= new XmlBeanFactory(resource);

     注意:路径相对于src的路径

    二、ApplicationContext加载文件(【非懒加载】配置,加载文件时,生成所有实例,同时对xml文件配置信息进行校验)

    1.FileSystemXmlApplicationContext 系统文件路径装载与解析xml文档

    2. ClassPathXmlApplicationContext 根据类路径装载并解析xml文档-----------【推荐使用】

    {

    1 //读取多个配置文件
    2         String[] configLocations = new String[]{"applicationContext.xml","applicationContext4.xml"};
    3         BeanFactory factory = new ClassPathXmlApplicationContext(configLocations);

    }

    注意:这两种方法与BeanFactory加载文件的相同,只是生成实例的时机不同

    3. XmlWebApplicationContext:通过ContextLoaderListener从内部导入context文件(结合web环境使用)(需添加支持web开发jar包: spring-web.jar)

    1 XmlWebApplicationContext factory = new XmlWebApplicationContext();
    2         factory.setServletContext(request.getSession().getServletContext());//配置application应用环境
    3         factory.setConfigLocation("/WEB-INF/applicationContext.xml");//配置applicationContext.xml路径
    4         factory.refresh();

    注意:默认路径/WEB-INF/applicationContext.xml,相对路径于网站根

    4.WebApplicationContext:通过ContextLoaderListener从内部导入context文件(结合web环境使用)

    ① 需添加支持web开发jar包: spring-web.jar
    ② 在web.xml添加监听:
    <!-- spring监听器 -->
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- 配置applicationContext.xml路径 -->
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/applicationContext.xml</param-value>
    </context-param>

    1 ServletContext application = request.getSession().getServletContext();
    2 WebApplicationContext factory = WebApplicationContextUtils.getWebApplicationContext(application);
  • 相关阅读:
    ceph 网络配置
    Centos7.2 下DNS+NamedManager高可用部署方案完整记录
    Mysql多实例数据库
    Mysql 基础
    搭建本地YUM仓库
    Go实现线程安全的缓存
    KubeEdge安装详细教程
    Kubeedge实现原理
    Go语言中new()和make()的区别
    Go语言中append()函数的源码实现在哪里?
  • 原文地址:https://www.cnblogs.com/ccw95/p/6123108.html
Copyright © 2011-2022 走看看