Struts2,Hibernate,Spring自定义配置文件路径

来源:互联网 发布:x86平板安装ubuntu 编辑:程序博客网 时间:2024/04/30 05:17
最近打算做一个Java与Flex整合的东西,顺便把最常用的Struts2,Hibernate,Spring整合在一起。根据项目搭建经验,这些框架的配置文件都是放在单独的resources目录下,即:


                                                

                                                                     图1


        我们以往都是放在WebRoot/WEB-INF下面,这样放置也无可厚非,因为这也是默认的放置地方,在框架配置文件中我们不必额外配置什么。但是,如果配置文件很多时就会让整个项目结构显得混乱,所以,有必要将配置文件放在一个指定的地方,如上图所示。


        现在就详细说说S2SH框架配置文件的路径问题。


        上图所示的项目是基于嵌入式tomcat搭建的,如果你不知道怎么搭建嵌入式tomcat,请看此博文:图文并茂、手把手教你怎么配置嵌入式Tomcat(2012年5月3日更新)。


       另外,本人也说过,这个项目是为整合Java与Flex搭建的,如果你也不知道这二者的整合方法,请看此博文:图文并茂、手把手教你怎么将Java项目与Flex4整合。


       接着我们改变Java文件的编译路径.我们在WebRoot/WEB-INF路径下新建一个classes文件夹。对着项目右键选择properties-àJava Build Path 。在此选择框中将 default output folder更改为mydisk/WebRoot/WEB-INF/classes路径,如下所示:


            

                                                                                     图2


        在项目路径下新建一个sourcefolder,然后在里面放置各种框架的配置文件,如图1所示。


       下面详细说说这些配置文件的配置方法。


       ●Struts2


        本人使用的版本是2.2.1.1,这个我们需要在web.xml文件中如下配置:


[html] view plaincopy
  1. <!-- 配置Struts2过滤器及指定配置文件路径 -->  
  2.     <filter>  
  3.     <filter-name>struts2</filter-name>  
  4.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  5.      <init-param>  
  6.     <param-name>struts.i18n.encoding</param-name>  
  7.     <param-value>UTF-8</param-value>  
  8.     </init-param>  
  9.     <init-param>  
  10.         <param-name>config</param-name>  
  11.         <param-value>platform-web.xml,struts-default.xml,struts-plugin.xml,WEB-INF/classes/struts/struts.xml</param-value>  
  12.     </init-param>  
  13.   </filter>  
  14.   <filter-mapping>  
  15.     <filter-name>struts2</filter-name>  
  16.     <url-pattern>/*</url-pattern>  
  17.   </filter-mapping>  


 

        可以看出我们虽然并没有使用platform-web.xml,struts-default.xml,struts-plugin.xml这几个配置文件,但是,我们仍然需要配上,如果不配置,会报


严重: Dispatcherinitialization failedcom.opensymphony.xwork2.inject.DependencyExceptioncom.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency[type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public voidcom.opensymphony.xwork2.config.providers.XmlConfigurationProvider.setObjectFactory(com.opensymphony.xwork2.ObjectFactory).

异常。


      ●Hibernate


      本人使用的是hibernate-distribution-3.6.3.Final版本。Hibernate中指定配置文件的方法与Struts2,Spring有些许区别,那就是在创建SessionFactory时指定。如下所示:

 

     

[java] view plaincopy
  1. Configuration cfg=newConfiguration().configure("hibernate/hibernate.cfg.xml");  //实例化Configuration并加载hibernate.cfg.xml文件  

 

      这样就可以使用此配置文件了。

 

       ●Spring


       本人使用的Spring版本为spring-framework-3.1.0.RELEASE。Spring中指定配置文件路径是在web.xml中指定的,如下所示:


  

[html] view plaincopy
  1. <!-- 指定Spring配置文件路径 -->  
  2.     <context-param>  
  3.        <param-name>contextConfigLocation</param-name>  
  4.        <param-value>  
  5.            classpath*:spring/applicationContext.xml  
  6.        </param-value>  
  7.     </context-param>  

      这样就配置完成了。

原创粉丝点击