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

长沙网站维护公司wordpress音乐主题

长沙网站维护公司,wordpress音乐主题,无锡住房和城乡建设官网,怎么做用网站赚钱吗Spring可以通过指定classpath*:与classpath:前缀加路径的方式从classpath加载文件,如bean的定义文件.classpath*:的出现是为了从多个jar文件中加载相同的文件.classpath:只能加载找到的第一个文件. 比如 resource1.jar中的package com.test.rs 有一个 jarAppcontext.xml 文件,内… Spring可以通过指定classpath*:与classpath:前缀加路径的方式从classpath加载文件,如bean的定义文件.classpath*:的出现是为了从多个jar文件中加载相同的文件.classpath:只能加载找到的第一个文件. 比如 resource1.jar中的package com.test.rs 有一个 jarAppcontext.xml 文件,内容如下: bean nameProcessorImplA classcom.test.spring.di.ProcessorImplA / resource2.jar中的package com.test.rs 也有一个 jarAppcontext.xml 文件,内容如下: bean idProcessorImplB classcom.test.spring.di.ProcessorImplB / 通过使用下面的代码则可以将两个jar包中的文件都加载进来 ApplicationContext ctx new ClassPathXmlApplicationContext( classpath*:com/test/rs/jarAppcontext.xml); 而如果写成下面的代码,就只能找到其中的一个xml文件(顺序取决于jar包的加载顺序) ApplicationContext ctx new ClassPathXmlApplicationContext( classpath:com/test/rs/jarAppcontext.xml); classpath*:的使用是为了多个component(最终发布成不同的jar包)并行开发,各自的bean定义文件按照一定的规则:packagefilename,而使用这些component的调用者可以把这些文件都加载进来. classpath*:的加载使用了classloader的 getResources() 方法,如果是在不同的J2EE服务器上运行,由于应用服务器提供自己的classloader实现它们在处理jar文件时的行为也许会有所不同。 要测试classpath*: 是否有效可以用classloader从classpath中的jar文件里加载文件来进行测试getClass().getClassLoader().getResources(someFileInsideTheJar)。(上面的例子是在sun的jre中运行的状态)  从Spring的源码,在PathMatchingResourcePatternResolver类中,我们可以更清楚的了解其对的处理:如果是以classpath*开头,它会遍历classpath. [java] view plaincopy protected Resource[] findAllClassPathResources(String location) throws IOException {      String path  location;      if (path.startsWith(/)) {          path  path.substring(1);      }      Enumeration resourceUrls  getClassLoader().getResources(path);      SetResource result  new LinkedHashSetResource(16);      while (resourceUrls.hasMoreElements()) {          URL url  (URL) resourceUrls.nextElement();          result.add(convertClassLoaderURL(url));      }      return result.toArray(new Resource[result.size()]);  }   http://blog.csdn.net/kkdelta/article/details/5560210,简介了在JAVA里遍历classpath中读取找到的所有符合名称的文件. 另外在加载resource的时候,其他前缀的意义如下表所示:注意classpath*只能用与指定配置文件的路径,不能用在用于 getResource的参数.如 appContext.getResource(classpath*:conf/bfactoryCtx.xml)会异常的. 前缀例子说明 classpath: classpath:com/myapp/config.xml 从classpath中加载。 file: file:/data/config.xml 作为 URL 从文件系统中加载。 http: http://myserver/logo.png 作为 URL 加载。 (none) /data/config.xml 根据 ApplicationContext 进行判断。 从Spring的源码可以看出原因:如果是classpath:开头,从classpath加载,否则尝试URL,如果失败,调用 getResourceByPath [java] view plaincopy public Resource getResource(String location) {          Assert.notNull(location, Location must not be null);          if (location.startsWith(CLASSPATH_URL_PREFIX)) {              return new ClassPathResource(location.substring(CLASSPATH_URL_PREFIX.length()), getClassLoader());          }          else {              try {                  // Try to parse the location as a URL...                  URL url  new URL(location);                  return new UrlResource(url);              }              catch (MalformedURLException ex) {                  // No URL - resolve as resource path.                  return getResourceByPath(location);              }          }      }   getResourceByPath会被不同ApplicationContext 实现覆盖. 如 GenericWebApplicationContext覆盖为如下: [java] view plaincopy protected Resource getResourceByPath(String path) {          return new ServletContextResource(this.servletContext, path);      }    如 FileSystemXmlApplicationContext覆盖为如下:    protected Resource getResourceByPath(String path) {          if (path ! null  path.startsWith(/)) {              path  path.substring(1);          }          return new FileSystemResource(path);      }   最终从文件加载的时候仍然是JAVA中常见的读取文件的方法: 如ClassPathResource得到inputstream的方法是利用class loader. [java] view plaincopy public InputStream getInputStream() throws IOException {      InputStream is;      if (this.clazz ! null) {          is  this.clazz.getResourceAsStream(this.path);      }   如FileSystemResource得到inputstream的方法是利用FileInputStream.     public InputStream getInputStream() throws IOException {         return new FileInputStream(this.file);     } 如ServletContextResource得到inputstream的方法是利用servletContext.getResourceAsStream. [java] view plaincopy public InputStream getInputStream() throws IOException {      InputStream is  this.servletContext.getResourceAsStream(this.path);      if (is  null) {          throw new FileNotFoundException(Could not open   getDescription());      }      return is;  }  转载于:https://www.cnblogs.com/1995hxt/p/5800257.html
http://www.fuzeviewer.com/news/48895/

相关文章:

  • 某网站seo策划方案网络推广培训资料
  • 网站建设的问题分析html源码查看在线
  • 初创公司 建网站广州做网站专业公司
  • 微信商城首页做网站优化给业务员提成
  • 医院招聘网站建设和维护精准拓客营销系统
  • 标题:鸿蒙Next音频开发新篇章:深入解析Audio Kit(音频服务) - 实践
  • 信誉好的镇江网站建设大型网站要多少钱
  • 鑫三科技网站设计阳泉 网站建设合作
  • 河北企业网站建设技术网站后台 二级域名
  • 旅游加盟网站建设网站的大图传不上去是怎么回事
  • 平台网站建设预算表app怎么制作的
  • Doris学习笔记
  • 西安做网站那家好深圳网站建设公司jsp
  • 济南专业网站制作公司哪里可以检测丙型肝炎
  • 上海专业网站建设公wordpress有游客注册帐号功能
  • 权威的南昌网站建设企业邮箱注册申请入口
  • 网站 网络推广栖霞建设网站
  • 购物网站主要的功能模块seo短视频新地址在哪里?
  • 公司注销后 网站备案吗网站建设优劣的评价标准
  • 手机餐饮网站开发广州最新防疫动态
  • apache做网站软件正版化情况及网站建设情况
  • 为什么营销型网站比普通网站建站贵wordpress附件修复
  • 佛山市网站公司网站流量攻击
  • 手表网站制作做网站时点击显示
  • 青岛网站建设在哪html5 房地产网站案例
  • 做健身类小程序的网站免费空间大的云盘
  • 南通营销网站建设湖南网站制作外包
  • 汽车配件生产企业网站模板王稳庄网站建设
  • 付费网站推广科技有限公司都是做什么的
  • 杭州未来科技网站建设网站空间稳定性