`
frank1998819
  • 浏览: 764801 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

spring classpath* 说明 (转)

 
阅读更多
0,
There is special support for retrieving multiple class path resources with the same name, via the "classpath*" prefix. For example, "classpath*:/beans.xml" will find all beans.xml files in the class path, be it in "classes" directories or in JAR files. This is particularly useful for auto-detecting config files.

1,
Hmm..After reading PathMatchingResourcePatternResolver, it looks like classpath* prefix should work with wildcards in mutliple JARs. My test showed it worked for contexts in WEB/classes, but not with a mix in WEB-INF/classes, and some in JARs in WEB-INF/lib. Maybe a bug?

Just updating this post...
OK - just to clarify after feedback from Juergen. classpath*: and wildcards do work, but not from the root directory within JARs. So for application contexts in the classpath at:

/com/company/applicationContext.xml
/com/company/applicationContext-ds.xml

If they're in WEB-INF/classes the following will work:
classpath*:**/applicationContext*.xml

If they're in a JAR in WEB-INF/lib the following will work:
classpath*:/com/**/applicationContext*.xml

2,
When you use 'classpath:' for an Ant style wildcard search, Spring uses a single classpath directory for the search. The documentation is vague, but it seems the directory returned will be the first one provided by ClassLoader.getResources(""). In our case, it returned the '/target/test-classes' directory that contains applicationTest.xml and our test classes, instead of '/target/classes' which contains application.xml and all the *.hbm.xml files.

Using the 'classpath*:' prefix fixes the problem. It indicates that the resource loader should look in all directories on the classpath, so making this change solved our problem. Apparently Spring maintains both prefixes because limitations in the Classloader (at the specification level) make it difficult to search for resources in the classpath root when performing wildcard searches across all classpath directories. This suggest it might be good practice to always create a directory to contain resources you might otherwise want to put in the classpath root and always use the 'claspath*:' prefix.
分享到:
评论

相关推荐

    Spring Boot参考指南.pdf

    - **在不使用parent POM的情况下玩转Spring Boot**:介绍没有parent POM时如何配置项目。 - **改变Java版本**:说明如何更改项目使用的Java版本。 - **使用Spring Boot Maven插件**:指导如何使用Spring Boot的...

    spring-boot中文参考指南

    #### 二、Spring Boot 文档说明 - **文档内容**:本文档主要介绍了如何使用Spring Boot快速搭建和部署应用程序,并提供了详细的指导和实例。 - **获取帮助**:提供官方文档、论坛、社区等途径获取技术支持。 - **第...

    Spring Cloud(Dalston )中文参考手册

    - **Classpath上有多个Binders**:说明如何处理类路径上存在多个Binder的情况。 - **连接到多个系统**:介绍如何配置Binder以连接到多个消息系统。 - **Binder配置属性**:讲解如何配置Binder的各种属性。 - **...

    spring-boot中文手册

    - **在不使用parent POM的情况下玩转Spring Boot**:介绍了一种无需parent POM也能有效管理项目的方法。 - **改变Java版本**:指导如何更改项目的编译目标版本。 - **使用Spring Boot Maven插件**:介绍如何利用...

    spring-boot-中文参考指南

    - **使用Spring Boot Maven插件**: 说明了Spring Boot Maven插件的用法。 - **Gradle**: 简述了Gradle下Spring Boot的配置。 - **Ant**: 简单提及了使用Ant构建Spring Boot应用的可能性。 - **Starter POMs**: 介绍...

    struts2_spring3.0_Junit4.7_Maven2.2.1_整合运行说明_培训.pdf )

    ### 整合技术框架说明 本文档主要介绍了如何将Struts2、Spring3.0、JUnit4.7和Maven2.2.1这几种技术框架整合在一起,以构建一个功能完善的Java EE项目。该文档的目标是帮助开发人员理解如何在实际项目中应用这些...

    Spring Boot 最新中文文档

    - **针对 Java 开发者的安装说明** - **Maven 安装**: 使用 Maven 作为构建工具,可以通过添加依赖到项目的 POM 文件来安装 Spring Boot。 - **Gradle 安装**: 类似于 Maven,通过 Gradle 构建脚本中的依赖管理来...

    spring cloud 中文文档

    - **Spring Cloud Config客户端**:说明了如何配置客户端以监听来自Spring Cloud Bus的通知,并自动刷新其配置。 #### Spring Cloud Netflix - **服务发现:Eureka客户端**:介绍了如何集成Netflix Eureka客户端...

    spring-boot-reference-guide-zh

    - 说明了如何运行已打包的Spring Boot应用。 - **使用Maven插件运行** - 介绍了如何利用Maven插件来启动Spring Boot应用。 - **使用Gradle插件运行** - 提供了使用Gradle插件启动Spring Boot应用的方法。 - **...

    spring-boot中文文档1.4.X.pdf

    Maven安装**:详细说明了如何通过Maven搭建Spring Boot项目。 - **10.1.2. Gradle安装**:提供了通过Gradle构建工具创建Spring Boot项目的步骤。 - **10.2. Spring Boot CLI安装**: - **10.2.1. 手动安装**:...

    spring整合mybatis实例

    通过运行`test1`类,如果测试成功,说明Spring已经成功整合了MyBatis,可以正常执行数据库查询和其他操作。 总的来说,Spring与MyBatis的整合使得我们可以在享受Spring的强大管理能力的同时,充分利用MyBatis的灵活...

    Springmybatis工程说明

    【Springmybatis工程说明】 Springmybatis工程是一个整合了Spring框架和Mybatis持久层框架的项目,用于构建基于Java的企业级应用。这个工程遵循了一种常见的MVC(Model-View-Controller)架构模式,其中Spring负责...

    springboot

    - **在Spring环境中使用YAML暴露属性**:说明如何在Spring环境中解析YAML配置。 - **Multi-profile YAML文档**:讲解如何使用多环境的YAML配置。 - **YAML缺点**:讨论YAML相比Properties的一些局限性。 - **...

    spring-boot中文参考手册

    - **Spring MVC自动配置**:说明了Spring Boot是如何自动配置Spring MVC的。 - **HttpMessageConverters**:解释了如何配置HTTP消息转换器。 - **MessageCodesResolver**:介绍了如何处理消息编码解析的过程。 ...

    spring4 中文API

    这种机制允许开发人员将组件之间的依赖关系从代码中分离出来,转而由容器进行管理。这种方式极大地提高了软件系统的可测试性和可维护性。 #### 模块 Spring Framework被设计为模块化的,每个模块都可以单独使用,...

    springboot中文参考指南

    - **在Spring环境中使用YAML暴露属性**:说明如何在Spring环境中读取YAML配置。 - **Multi-profile YAML文档**:支持在同一YAML文件中定义多个profile。 - **YAML缺点**:指出使用YAML可能遇到的问题。 - **类型...

    spring boot 1.3.5 release

    - 添加类路径依赖(Adding classpath dependencies):说明如何添加项目所需的各种依赖库。 - 编写代码(Writing the code): - `@RestController` 和 `@RequestMapping` 注解:解释这两个注解的作用和用法。 -...

    jpa使用说明(English)

    - **Classpath 扫描**:介绍了如何扫描类路径以发现 Entity 类和 JPA 映射文件。 - **CDI 集成**:解释了如何将 Spring Data JPA 与 CDI(Contexts and Dependency Injection)集成起来。 7. **附录**:提供了名称...

    Spring Boot 中文文档 参考手册 中文版.pdf

    - **Java Developer 安装说明**:对于使用Maven的开发者来说,可以通过`<dependency>`标签在pom.xml文件中添加Spring Boot Starter依赖;而使用Gradle的开发者则可以在build.gradle文件中添加依赖。此外,还可以...

Global site tag (gtag.js) - Google Analytics