当前位置: 首页 > news >正文

网站愉建设上海网站平台建设

网站愉建设,上海网站平台建设,免费做苗木网站,新加坡网站大全这几天在看spring的源码#xff0c;涉及到spring启动位置的部分#xff0c;下面就看看spring到底是从哪儿开始加载的。本文使用的是spring3.0M3 首先spring的加载会借助一个监听器ContextLoaderListener#xff0c;直接上web.xml文件 Xml代码 listener 涉及到spring启动位置的部分下面就看看spring到底是从哪儿开始加载的。本文使用的是spring3.0M3  首先spring的加载会借助一个监听器ContextLoaderListener直接上web.xml文件  Xml代码   listener      listener-classorg.springframework.web.context.ContextLoaderListener/listener-class  /listener   我们通常会对加载位置统一管理    Xml代码   context-param         param-namecontextConfigLocation/param-name         param-value          /WEB-INF/conf/spring/**/*.xml         /param-value     /context-param   这个org.springframework.web.context.ContextLoaderListener类型是springframework中的原始加载上下文的监听器  通常我们会自定义一个Listener去继承ContextLoaderListener并另外实现我们需要初始化的接口(通常我们会选择实现一些接口来对session的管理)  Java代码   public class FrameServletContextListener extends ContextLoaderListener implements ServletContextListener,HttpSessionAttributeListener,HttpSessionListener {      //      private ServletContext initPath(ServletContextEvent event) {        }            public synchronized void contextDestroyed(ServletContextEvent event) {      //      }        ...  }   当监听器设置好了之后 启动web容器 监听器开始启动ContextLoaderListenerl  类中的方法contextInitialized()  Java代码   /**  * Initialize the root web application context.  */  public void contextInitialized(ServletContextEvent event) {      this.contextLoader  createContextLoader();      if (this.contextLoader  null) {          this.contextLoader  this;      }      this.contextLoader.initWebApplicationContext(event.getServletContext());  }   这样this.contextLoader.initWebApplicationContext(event.getServletContext());ContextLoaderListener  就会借助容器的上下文去初始一个spring的应用上下文使用到了ContextLoader这个类  在ContextLoader初始化时我们看到这样一块static代码  Java代码   static {      // Load default strategy implementations from properties file.      // This is currently strictly internal and not meant to be customized      // by application developers.      try {          //这一句会去加载同在此包下的一个properties文件的值ContextLoader.properties          ClassPathResource resource  new ClassPathResource(DEFAULT_STRATEGIES_PATH, ContextLoader.class);          defaultStrategies  PropertiesLoaderUtils.loadProperties(resource);      }      catch (IOException ex) {          throw new IllegalStateException(Could not load ContextLoader.properties:   ex.getMessage());      }  }   属性文件中这样定义  引用 org.springframework.web.context.WebApplicationContextorg.springframework.web.context.support.XmlWebApplicationContext 这样我们就能根据属性文件中的定义反射出一个XmlWebApplicationContext上下文了  然而我们在XmlWebApplicationContext中看到如下变量  Java代码   /** Default config location for the root context */  public static final String DEFAULT_CONFIG_LOCATION  /WEB-INF/applicationContext.xml;   至此我们已经知道默认加载spring文件的启动位置了  当我们再看ContextLoader类我们就会看到传说中的参数contextConfigLocation  Java代码   public static final String CONFIG_LOCATION_PARAM  contextConfigLocation;   而XmlWebApplicationContext对象正是调用了这个参数去设置启动位置  Java代码   wac.setConfigLocation(servletContext.getInitParameter(CONFIG_LOCATION_PARAM));   再往上看XmlWebApplicationContext继承的AbstractRefreshableConfigApplicationContext类中的setConfigLocation方法将此抽象类中的String[] configLocations值填充  并在AbstractRefreshableConfigApplicationContext类中我们看到spring对默认启动文件位置和配置启动文件位置的支持  Java代码   protected String[] getConfigLocations() {      return (this.configLocations ! null ? this.configLocations : getDefaultConfigLocations());   }  至此我们已经清楚spring将从哪儿加载并知道加载哪些文件了。
http://www.w-s-a.com/news/263499/

相关文章:

  • 怎样做28网站代理中山网站建设方案外包
  • vs2010做网站前台搭建小网站
  • 做视频必须知道的一些网站wordpress 标签鼠标滑过_弹出的title 代码美化
  • 怎么做室内设计公司网站电商运营培训视频课程
  • 昆明网站策划天津市建筑信息平台
  • 三亚放心游app官方网站wordpress 个人主题
  • 做简单的网站备案平台新增网站
  • 中国建设网站银行网络营销推广方案整合
  • 网站域名列表dede网站白屏
  • 站长工具一区品牌建设卓有成效
  • 电子商务网站建设案例wordpress批量编辑
  • 想代理个网站建设平台100个最佳市场营销案例
  • 钟表东莞网站建设石家庄做网站时光
  • 织梦 图片网站源码成都建设工程安监局网站
  • 做兼职的网站策划书湖北省建设工程造价信息网
  • 企业网站网址长期做网站应该购买稳定的空间
  • 网站静态化设计html5手机网站制作
  • 深圳最简单的网站建设家居网站建设全网营销
  • 如何取消网站备案佛山网站优化公司
  • 网站开发 成都广水网站设计
  • 音乐网站建设目标合同管理系统
  • jq网站特效插件如何知道网站是否被k
  • 自己的网站怎么接广告网站搭建收费
  • 宁波大型网站制作建立一个网站 优帮云
  • 大连零基础网站建设教学电话有哪些比较好的做ppt好的网站
  • 哪个网站做logo设计我的建筑网
  • php电子商务网站开发沂源手机网站建设公司
  • html和php做网站哪个好3gcms企业手机网站整站源码asp
  • 网站建设网页设计案例云南建设厅网站删除
  • 杏坛网站制作太原做网站要多少钱呢