Struts2、Hibernate、spring整合过程总结
Struts2、Hibernate、spring整合过程总结
相关配置版本:jdk1.5,Tomcat 6.0 , Myeclipse7.0
1.打开MyEclipse,创建一个web project项目,输入项目名,如mytest,下面的J2EE Specification Level选择“Java EE 5.0”,然后finish.
2.将项目部署到Tomcat里,有三种方法,
第一种:映射到Tomcat的server.xml配置文件里。找到Tomcat的安装文件,进去找到conf\server.xml,打开该文件,在下面加上这样一句话:<Context path="/mytest" docBase="E:\sshDemo\sshtest1\demo1\mytest\WebRoot" reloadable="true"/>
一个Context代表一个Web项目,Path值要是唯一的。红色表示你的项目路径,可以右击项目mytest?属性,Location的值就是项目路径。
第二种:在myEclipes里找到servers,找到自己配的servers,右击选择Manage Developtments,"add",讲要运行的项目名称加进来。OK!
部署完毕!
3.配置Myeclipse到Tomcat的映射,需要配置JDK和Myeclipse。
(1)配置JDK:点击Myeclipse的Window -> preferences -> 左边java –>Installed JREs,去掉Myeclipse自带的JDK,加上我们自己的JDK。
(2)配置Myeclipse: 点击Myeclipse的Window -> preferences -> 左边Myeclipse ->Services ->Tomcat ->Tomcat 6.x ->JDK->将之前配置的JDK加上去。完成后退出到之前页面,配置Tomcat,加上Tomcat的安装路径。将右边的Tomcat Server选为Enable。
(3)将Myeclipse自带的Tomcat禁用掉:点击Myeclipse的Window -> preferences -> 左边Myeclipse -> Services->Integrated Sandbox->Myeclipse Tomcat 6->将右边的Tomcat Server选为Disable。
下面开始三大框架的整合!
4.先添加Hibernate的支持
选中项目,右击—>Myeclipes —>Add Hibernate Capabilities—>选择最高版本Hibernate 3.1或Hibernate 3.2—>JAR Library Installation一定要选择下面的Copy checked Library Jars to project folder and add to build-path—>next —>next—>进入数据库配置页面,我们选择用Spring配置Hibernate的相关信息,不在此配置,所以把Specify database connection details前面的勾去掉。next —>去掉Create SessionFactory class前面的勾,finish!
5.添加Spring的支持
选中项目,右击—>Myeclipes —>Add Spring Capabilities—>版本选择Spring 2.0—>添加前四个jar文件,和Spring2.0 Web Libraries.总共5个库。—>同Hibernate,JAR Library Installation一定要选择下面的Copy checked Library Jars to project folder and add to build-path。—>next —>Folder改为webRoot/WEB-INf.—>next,把勾去掉—>finish!
6.添加Struts2的支持(需要我们手动添加)
找到struts2的资源文件,到lib文件里找到五个jar文件:
(1)freemarker-2.3.8.jar
(2)ognl-2.6.11.jar
(3)struts2-core-2.0.11.jar
(4)struts2-spring-plugin-2.0.11.jar
(5)xwork-2.0.4.jar
复制这五个jar ,粘贴到WEB-INF/lib下。
7.在src下新建一个struts.xml文件,格式为:
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
.......
</struts>
8.配置web.xml文件,格式为
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
9.下面开始正式编码
在数据库里建好表。
创建jsp页面,
创建持久化类如User,要有无参构造函数,因为Hibernate必须使用Java反射机制来为你创建对象。
然后创建映射文件User.hbm.xml格式为:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<class
name="com.simlink.emr.data.ho.Users"
table="users"
>
<id
name="id"
type="java.lang.Integer"
>
<generator />
</id>
<property
name="brxm"
type="java.lang.String"
column="BRXM"
length="50"
/>
<property
name="age"
/>
//如没有设置type属性,Hibernate会自己试着去确定正确的转换类型和它的映射类型
</class>
</hibernate-mapping>
10.然后创建相应的Dao(接口和实现类),实现类还要继承自HibernateDaoSupport类。
创建Service(接口和实现类),
创建Action,继承自ActionSupport类(com.opensymphony.xwork2.ActionSupport),重写execute()方法。
11.填写struts.xml文件<struts>
<package name="user" extends="struts-default">
<action name="saveUser" type="redirect">listUser.action</result>
<result name="input">/save.jsp</result>
</action>
<action name="listUser" destroy-method="close">
<!-- dataSource config -->
<property name="driverClass" value="com.ibm.db2.jcc.DB2Driver"/>
<property name="jdbcUrl" value="jdbc:db2://192.168.130.26:50000/srm"/> --srm为数据库名称
<property name="user" value="db2admin"/>
<property name="password" value="SIMLINK123"/>
<property name="initialPoolSize" value="2" />
<property name="minPoolSize" value="2" />
<property name="maxPoolSize" value="4" />
<property name="checkoutTimeout" value="10000" />
<property name="maxIdleTime" value="3600" />
</bean>
<!-- SessionFactory -->
<bean id="sessionFactory" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/simlink/emr/data/ho/Users.hbm.xml</value>
</list>
</property>
</bean>
<bean id="usersDao" scope="singleton">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="usersService" ref="usersDao"></property>
</bean>
<bean id="saveUserAction" scope="prototype">
<property name="service" ref="usersService"></property>
</bean>
大功告成!