您的位置:首页 > 编程语言 > Java开发

[转]Struts2 + Spring + Hibernate + DWR 项目布署笔记

2009-10-29 11:17 357 查看
本文转载自:http://51jsr.javaeye.com/blog/294756

SSHD的布署主要分为五部分,分别是:建立web项目、整合Struts2到新建的web项目、为项目添加Spring和Hibernate并做好必要的整合配置、整合Spring和Struts2、添加DWR到web项目。

项目布署

·建立web项目

在Eclipse的菜单栏中,选择 文件->新建->项目 建立一个 web项目;

·整合Struts2到新建的web项目

1、将struts2必要的jar包复制到web项目的WEB-INF/lib目录下;(jar包在struts2.rar中)

2、在web.xml文件中添加必要的配置,代码如下:

Xml代码
<display-name>APP Name</display-name>

<!-- struts2 config -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<display-name>APP Name</display-name>

<!-- struts2 config -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

3、在src目录下新建struts.xml文件,并添加如下代码:

Xml代码
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<include file="struts-default.xml"/>
<package name="sshd" extends="struts-default">

</package>
</struts>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<include file="struts-default.xml"/>
<package name="sshd" extends="struts-default">

</package>
</struts>

·为项目添加Spring和Hibernate并做好必要的整合配置

1、将spring和Hibernate所必需的jar包复制到web项目的WEB-INF/lib目录下(jar包在struts2+spring.rar和hibernate3.1.rar中);

在src目录下新建applicationContext.xml文件,并添加如下代码:

Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

</beans>

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

</beans>

2、在src目录下新建jdbc.properties数据库配置文件,代码如下:

Java代码
#Oracle9i --------------------------------------------
jdbc.driverClassName = oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@(description=(address=(host=127.0.0.1)(protocol=tcp)(port=1521))(connect_data=(service_name=xftest)))
jdbc.url = jdbc:oracle:thin:@127.0.0.1:1521:ora9idb
jdbc.username = sshd
jdbc.password = sshd

#下面还可以写其它数据库的连接参数,用‘#’注掉即可 ------

#Oracle9i --------------------------------------------
jdbc.driverClassName = oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@(description=(address=(host=127.0.0.1)(protocol=tcp)(port=1521))(connect_data=(service_name=xftest)))
jdbc.url = jdbc:oracle:thin:@127.0.0.1:1521:ora9idb
jdbc.username = sshd
jdbc.password = sshd

#下面还可以写其它数据库的连接参数,用‘#’注掉即可 ------

加载jdbc.properties数据库连接配置,打开applicationContext.xml文件,在beans标签中,添加如下代码:

Xml代码
<!-- 读取配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>

<!-- 读取配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>

3、整合Spring和Hibernate,需要在Spring中为Hibernate配置数据源和sessionFactory,打开applicationContext.xml文件,在beans标签中,添加如下代码:

Xml代码
<!-- 配置Hibernate数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}">
</property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">
true
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>数据库表Bean的hbm.xml</value>
</list>
</property>
</bean>

<!-- 配置Hibernate数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}">
</property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">
true
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>数据库表Bean的hbm.xml</value>
</list>
</property>
</bean>

·整合Spring和Struts2

1、将整合必要的struts2-spring-plugin-2.0.11.2.jar和spring.jar包复制到web项目的WEB-INF/lib目录下;(jar包在struts2+spring.rar中)

2、在web.xml文件里添加必要的配置,代码如下:

Xml代码
<!-- spring + hibernate config -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>

<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<!-- spring + hibernate config -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>

<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

3、在src目录下新建Struts.properties配置文件,告知Struts2在运行时使用Spring来创建对象(如Action等),代码如下:

Java代码
struts.objectFactory = spring

struts.objectFactory = spring

·添加DWR到web项目

1、将DWR必要的jar包复制到web项目的WEB-INF/lib目录下;(jar包在dwr.rar中)

2、在web.xml文件中添加dwr的加载配置,代码如下:

Xml代码
<!-- DWR config -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

<!-- DWR config -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

3、在WEB-INF/lib目录下新建dwr.xml文件,代码如下:

Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

<dwr>
<allow>

</allow>
</dwr>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

<dwr>
<allow>

</allow>
</dwr>

4、在dwr.xml中配置要映射成js的java类,在allow标签中添加如下代码:

Xml代码
<create creator="spring" javascript="loginAction">
<param name="beanName" value="loginAction"/>
</create>

<create creator="spring" javascript="loginAction">
<param name="beanName" value="loginAction"/>
</create>

creator="spring" 表示要映射的java类由spring来创建
javascript="loginAction" 表示映射完后,java类在js中的引用名
name="beanName" 用spring 来创建类就用beanName这个设置
value="loginAction" value的值对应applicationContext.xml中定义的某个bean的id值

5、一般要在java类中写一个专门用DRW调的方法;

6、在前台页面调时需添加如下代码:

Html代码
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/loginAction.js'></script>  这个就是映射后的js类
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script>

<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/loginAction.js'></script>  这个就是映射后的js类
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: