posts - 31,  comments - 31,  trackbacks - 0
       为了满足将plugin工程打成jar包,但是spring的配置文件不打进jar包的需求。很多时候我们为了可以方便手工配置spring的一些信息,而不用将jar解压而从新压缩,我们需要把Spring的配置文件放在plugin的jar包外这时,如果没有正确的使用spring的Resource就不能加载spring的配置文件,经过多次尝试终于找到一个比较合适的方法,与大家交流。
public static BeanFactory getFactory() {
        
if (factory == null{
            FileSystemResource resource 
= new FileSystemResource("appcontextclient.xml");
            factory 
= new XmlBeanFactory(resource);
        }

        
return factory;

    }

        将appcontextclient.xml文件放到工程根目录下,发布时将appcontextclient.xml放入到你的eclipse的安装目录即可(与eclipse的exe执行文件相同的位置),如果需要可在appcontextclient.xml文件前加入相关的路径来更改你的目录(但是有可能在调试过程中必须要把appcontextclient.xml文件放到你的eclipse IDE的安装目录里,因为大部分时间我们的eclipse IDE是何 workspace分开存放的,这样我们在调试的时候非常别扭,要到IDE里去修改配置文件)。
        以上方法并不是唯一的,只是我感觉用起来比较合适的,这样在调试时既可以保证appcontextclient.xml文件在工程目录范围内,有可以在发布时使文件保持在安装目录而不是运行环境的workspace的临时目录里。
        同时介绍几个方法可以eclipse方法获得eclipse工具的几个重要路径(注:"IDE"为我的plugin工程的PLUGIN_ID)
        Platform.getInstallLocation().getURL()                                                 
        file:/F:/tools/java/eclipse/eclipse-SDK-3.3-win32/eclipse/             
        这是我的eclipse IDE的安装目录
            
        Platform.getLocation()                                                                        
        D:/runtime-IDE.product                                                               
        这是我调试插件时生成的临时运行环境目录,是在调试IDE工程时生成的,就是发布时插件所属eclipse运行环境的WorkSpace目录
             
        Platform.getInstanceLocation().getURL()                                             
        file:/D:/runtime-IDE.product/                                                       
         这个跟上面的一样
             
        Platform.getLocation()                                                                        
        D:/runtime-IDE.product                                                              
         这个跟上面的也一样
        
        Platform.getLogFileLocation()                                                             
        D:/runtime-IDE.product/.metadata/.log                                         
        运行环境的日志文件路径,发布时插件所属eclipse运行环境的WorkSpace目录下的/.metadata/.log 
         
        Platform.getStateLocation(Platform.getBundle("IDE"))               
        D:/runtime-IDE.product/.metadata/.plugins/IDE                           
        运行环境中IDE的一个临时目录,发布时插件所属eclipse运行环境的WorkSpace目录下/.metadata/.plugins/IDE
             
        Platform.getUserLocation()                                                       
        file:/C:/Documents and Settings/XX/user                                     
         这是我的文档的路径(把用户名X掉,哈哈)

        Platform.getBundle("IDE").getLocation()                                    
        update@D:/WorkSpace/IDE/                                                     
        我的IDE工程的路径,对应发布时插件的jar本身,在这个目录下的文件将全部包含在发不得jar里。

        Platform.getConfigurationLocation().getURL()       
        file:/D:/WorkSpace/.metadata/.plugins/org.eclipse.pde.core/IDE.product/  
        eclipse IDE 自己建的目录

        eclipse 本身也有很多加载资源文件的方法可以在org.eclipse.core.runtime.Platform这个类里找到,具体的就请大家找找API吧
posted on 2008-01-05 21:35 小平 阅读(2004) 评论(0)  编辑  收藏 所属分类: springeclipse plugIn

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(2)

随笔分类

随笔档案

framework

j2me

java

linux

web

其他

友情链接

素材

最新评论

阅读排行榜

评论排行榜