锁定老帖子 主题:一致开发和运行配置
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-30
现在采用eclipse进行开发,在运行环境在tomcat中,目录结构如下 project |----src |----web |----|----WEB-INF |----|----|----classes |----|----|----conf 系统在运行时所有的配置文件在conf目录下,在开发过程中采用junit进行测试,出现问题就是spring的配置文件没有办法进行配置,因为开发查询文件的目录在classes目录下,而在运行时web目录下和classes下都可以,所以没有办法编写配置文件的目录,而且为了防止程序部署的简单性,开发环境和运行环境不需要修改配置文件。 考虑到造成这个问题的原因是ClassLoader的资源查询目录不同,所以从ClassLoader入手,自定义ClassLoader类,定义类如下,因为考虑到只是配置文件不同,采用如下方式: public class ProjectJunitClassLoader extends ClassLoader { public ProjectJunitClassLoader(ClassLoader parent, String dir) { protected URL findResource(String name) { private String converName(String name) { } 这样可以通过传入我们的web的目录就可以进行文件的加载操作,还有一个问题就是如何把ClassLoader在eclipse总是用,考虑到junit中添加了@BeforeClass在运行时只运新一次,在里面添加如下代码: static ClassLoader oldLoader = null; 这样就可以解决此问题,新添加的ClassLoader只是在原来的classLoader没有找到的情况下,进行这个操作,而且只是Junit进行使用,完美解决此问题。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1433 次