S2SH学习笔记(1)----Struts2,Hibernate,Spring自定义配置文件路径

   

       最近打算做一个Java与Flex整合的东西,顺便把最常用的Struts2,Hibernate,Spring整合在一起。根据上一个公司的项目搭建经验,这些框架的配置文件都是放在单独的resources目录下,即:


                                                S2SH学习笔记(1)----Struts2,Hibernate,Spring自定义配置文件路径_第1张图片

                                                                     图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路径,如下所示:


            S2SH学习笔记(1)----Struts2,Hibernate,Spring自定义配置文件路径_第2张图片

                                                                                     图2


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


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


       ●Struts2


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


<!-- 配置Struts2过滤器及指定配置文件路径 -->
    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
     <init-param>
    <param-name>struts.i18n.encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>config</param-name>
        <param-value>platform-web.xml,struts-default.xml,struts-plugin.xml,WEB-INF/classes/struts/struts.xml</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </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时指定。如下所示:

 

     

 Configuration cfg=newConfiguration().configure("hibernate/hibernate.cfg.xml");  //实例化Configuration并加载hibernate.cfg.xml文件

 

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

 

       ●Spring


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


  

<!-- 指定Spring配置文件路径 -->
    <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>
           classpath*:spring/applicationContext.xml
       </param-value>
    </context-param>

      这样就配置完成了。


      这是本人学习的结果,允许转载,欢迎交流,但转载务必给出本文章的链接地址:http://blog.csdn.net/youqishini/article/details/7706538,谢谢~





你可能感兴趣的:(java,spring,Hibernate,struts,Flex,嵌入式)