最近打算做一个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文件中如下配置:
- <!-- 配置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>
这样就配置完成了。