场景:
1.我把spring的所有jar包到放到一个插件中比如叫third-spring插件。
2.MyTest插件依赖third-spring插件。application.xml配置文件我放在MyTest插件的classPath里。
第一步基于模块化编程中的可重用性思想,将其作为公共插件。
这个时候如果在MyTest中使用
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("res/applicationContext.xml");
这个时候会报file not found。文件找不到
原因分析:
我们都知道插件开发一个很重要的一点就是每个插件都有自己的classLoader,这也是模块化编程思想
的一个明显的标志。
造成这个问题,就是因为你拿着别人的classLoader去加载自己的资源。人家看不到你。所以告诉你找不到。表面上你以为现在运行的是你的代码,可当时线程中使用的却不一定是你的classLoader。
解决方案:ClassPathXmlApplicationContext applicationContext ;
final ClassLoader cl = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
} finally {
Thread.currentThread().setContextClassLoader(cl);
}
在加载资源的地方先把线程上下文中的classLoader切换成自己的。最后再替换回来。
在实际应用中可能遇到的比这还复杂。但是决大多数,是因为classLoader问题引起的
分享到:
相关推荐
总的来说,这个压缩包中的"StrutsInterface"可能包含了关于如何在Eclipse环境中搭建和配置Struts、Hibernate、Spring集成开发环境的详细步骤,以及相关的示例代码和教程文档。通过深入学习和实践,你将能熟练地运用...
它致力于创造新颖的开发模式,将开发中遇到的痛点、生产中所踩的坑整理归纳,并将解决方案都融合到框架中。 SpringBlade 的特点是采用前后端分离的模式,前端开源两个框架:Sword(基于 React、Ant Design)、Saber...
本文将详细介绍如何在Eclipse 4.5版本中集成STS插件,以及集成过程中可能遇到的问题和解决方案。 首先,你需要下载STS插件。STS通常以压缩包形式提供,如"sts-bundle"。这个压缩包包含了STS的所有组件,包括Eclipse...
然而,集成过程中可能会遇到一些问题,尤其是当涉及到Spring的AOP时。 首先,让我们深入理解Struts2和Spring的集成原理。在集成过程中,通常会通过Spring的`struts-plugin.xml`配置文件来管理Struts2的动作类...
### 李君老师JavaEE笔记-Spring中集成Dwr:深度解析与实践指南 #### 一、DWR:Direct Web Remoting简介 DWR(Direct Web Remoting)是一种开源的AJAX框架,它允许Web客户端JavaScript直接调用服务器端的Java方法,...
1. **Java 2 Security Integration**:增加了对Java 2安全性的集成,使得开发者可以在安全环境中部署和运行Spring DM应用。 2. **Compendium Services Support**:支持OSGi Compendium规范中定义的额外服务,提高了...
配置过程中,通常会遇到缺少连接池驱动的问题,此时需要手动添加Apache Commons DBCP或类似库的jar包到项目库中,确保数据库连接的顺畅。 #### 五、建立工程包结构 合理的工程包结构对于大型项目的开发至关重要,...
当我们需要在Eclipse中安装Spring插件时,有时可能会遇到安装失败的情况,可能是由于网络问题、版本兼容性或插件冲突等原因。为了解决这个问题,可以直接使用预装了Spring Tool Suite的Eclipse Kepler版本,这样可以...
标题 "Eclipse集成mybatis插件" 涉及到的是在Java开发环境中,如何将MyBatis这一流行的数据持久层框架与Eclipse IDE整合,以便于提高开发效率和代码质量。MyBatis是一个轻量级的框架,它允许开发者通过SQL映射文件将...
- 在安装过程中如果遇到问题,可以参考Eclipse和Spring IDE的官方文档或社区论坛寻求解决方案。 7. **后续操作**: - 安装完毕后,可以在Eclipse中创建新的Spring项目,利用Spring IDE提供的工具进行配置和开发。...
Activiti 是一个开源的工作流程和业务自动化引擎,它在Java平台上运行,并且与Spring框架有很好的集成。在MyEclipse这种强大的Java开发环境中,安装Activiti插件可以帮助开发者更好地设计、部署和管理业务流程。本篇...
以下是对“Spring集成Struts2环境简单配置”的详细说明: 首先,我们需要在项目中引入Spring和Struts2的依赖库。这通常通过Maven或Gradle等构建工具完成,添加相应的依赖项到项目的pom.xml或build.gradle文件中。...
在Eclipse Spring IDE的压缩包中,readme.txt可能包含了关于如何安装和使用此插件的详细步骤,以及可能遇到的问题和解决办法。 **springide-1.3.6**:这可能是Eclipse Spring IDE的一个特定版本号。版本号中的数字...
**SpringToolSuite4 (STS4) 是一个专为Spring框架开发者设计的强大集成开发环境(IDE),它是基于Eclipse平台构建的。**这个工具为Spring框架的开发提供了丰富的特性,包括智能代码提示、强大的调试功能、方便的配置...
在开发Spring Boot应用时,IDEA(IntelliJ IDEA)是一个常见的集成开发环境。在构建项目过程中,我们可能会遇到各种问题,其中之一就是POM.XML文件中的插件安装报错。这个错误通常涉及到Maven,它是Java开发中广泛...
5. 如果遇到热部署问题,如更新不生效,检查IDE设置,确保Idea启用了自动编译,并确认项目的JDK版本与Spring Boot支持的版本兼容。 通过以上步骤,你就可以体验到Spring Boot结合SpringLoaded带来的高效开发流程。...
- 确保SpringLoaded版本与你的Spring框架版本兼容,否则可能会遇到问题。 - 热部署可能导致内存占用增加,因此需要关注应用性能。 - 如果遇到热部署不生效的情况,检查类加载器配置,可能需要禁用其他类加载策略...
在IT行业中,集成开发环境(IDE)扮演着至关重要的角色,尤其对于Spring框架的开发者来说。Spring IDE是一款专为Spring框架设计的...如果你在安装过程中遇到任何问题,可以通过邮件与作者evan_wu95@126.com联系交流。
对于学习过程中遇到的问题,可以查阅官方文档、社区论坛或加入相关的技术交流群组获取帮助。 **3. 第一步:了解Spring Boot** - **Spring Boot是什么?** - Spring Boot是一个用于简化Spring应用开发的框架。 - *...
通过这些源代码,你可以学习到如何在实际项目中应用Spring框架,理解其工作原理,以及如何解决开发过程中遇到的问题。每个样本项目都代表了一个特定的技术或应用场景,深入研究这些代码有助于提升你的Spring技能。