搭建SSH框架:Struts1.* + Spring2.5 + Hibernate3.0
一, 项目结构:
图(1)
Jsp页面省略,主要是一些添删改查的页面;
二, 开始搭建项目环境,步骤如下:
使用平台:MyEclipse6.0/6.5
框架版本:Struts1.* + Spring2.5 + Hibernate3.0;
1,添加过程:
1>,新建项目: 打开MyEclipse,在Package Explorer视图下,右键单击 New -> Web Project;
注意:在新建项目时,JDK的版本最好要选择Java EE 5.0;因为版本过低,可能有些JSP方面的功能不支持;
图(2)
新建玩项目之后,把该导的包导入到 图(3)
下面,下图为SS H框架所需要的Jar包,注意,该项目用的是ORACLE数据库;
图(4)
其中,activation 与 mail这两个包为Java发邮件的包;classes12为Oracle数据库的驱动包,如果不是Oracle数据库,可更换该Jar包;dwe为Ajax dwr框架中的包;
2>,接着就开始用MyEclipse辅助开发Struts,Spring,Hibernate了;
3>,首先MyEclipse辅助开发Struts,方法:右键单击你所建的项目,出现一级菜单,选择Myeclipse,选择Myeclipse之后会出现二级菜单,接着选择Add Struts apabilities;;接着具体操作如下面图示:
图(5)
点击Finish按钮完成;完成之后,可将 图(6)
包删除;在上图中,如果那个勾没有去掉的话,就会自动生产如下标签:当然,如果你觉得标签对你没什么用的话,可以删除;
图(7)
如果该勾去掉的话,就只生成图(8)
标签,这是Struts的核心标签;
4>,MyEclipse辅助开发Spring,方法跟上面的一样,选择Add Spring apabilities;;接着具体操作如下面图示:图(9)
然后点击Next,具体操作如下图:图(10)
接着点击 Finish按钮,完成此项操作;
5>,,最后MyEclipse辅助开发Hibernate,在执行和上面类似方法之前,Hibernate需要先做另外一件事情,那就是和数据建立连接,具体操作如下图:
点击图(11)
上图位置的 或者右边的>> ,然后再选择MyEclipse Database Explorer切换到如下图页面: 图(12),然后右键单击,新建一个Database Driver;如下图:图(13)
下面这个截图是该项目的数据库链接图:
图(14)
如图所示,测试数据库链接成功;然后可直接点击Finish完成;
接着切换到 图(15) 窗口,按照上面第三小步的方法,选择Add Hibernate apabilities;;接着具体操作如下面图示:
图(16)
点击 下一步:图(17)
点击 下一步:图(18)
点击 下一步:
点击 下一步:
图(19)
点击 Finish 完成;
6>,最后一步,就是运用Hibernate的映射机制,把数据库的表与JAVA的对形成一个关系映射;在此之前,首先应该在项目SRC的目录下面新建一个包,如该项目所示,用来存放映射生成的POJO对象以及映射文件;如下图:图(20)
有一点说一下,你生成的*.hbm.xml文件可能不止一个,对,你可以把它们整合到一个文件中;然后新建按第五小步的方法,把窗口切换到MyEclipse Database Explorer界面,然后打开右键刚才所建立的链接
,图(21)
选择属于你自己的用户;然后选择T able
图(22)
;右键选择如上图的属性:接下来的操作如下图:
图(23)
点击 Next,进入下一步:
图(24)
点击 Next,进入下一步:
图(25)
至此,项目环境己经搭建完成;(由于截图太多 再次就不一一粘贴了 需要的话 可以E-mail索要)
三, 项目搭建完成,SSH各个部分配置文件的说明,以及它们之间存在的关系:
1, 首先是Struts的核心配置文件,即struts-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<!—建立Form表单,在此处进行登记 -à
<form-bean name="userForm"
type="com.ygkq.usermanager.view.struts.actionform.UserForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<!—各个Action对应与之相对应的表单 -à
<action-mappings>
<!-- 用户管理 -->
<action parameter="opers" attribute="userForm" name="userForm"
path="/doUser" scope="request">
<forward name="login_ok" path="/welcome.jsp"></forward>
<forward name="login_no" path="/index.jsp"></forward>
</action>
</action-mappings>
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
<message-resources
parameter="com.ygkq.usermanagerview.struts.ApplicationResources">
</message-resources>
<!—Spring辅助Struts管理Struts-à
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/action-servlet.xml" />
</plug-in>
</struts-config>
2,其次就是Springd的applicationContext.xml文件和action-servlet.xml文件:
applicationContext.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.5.xsd">
<!-- Session 工厂 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml"><!-- 可以不要配置文件(hibernate.cfg.xml),直接写在这个Spring的配置文件中 -->
</property>
</bean>
<!-- 模板 -->
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 事务器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 对外代理 -->
<!-- 1,用户管理 -->
<bean id="userDaoImp"
class="com.ygkq.usermanager.model.dao.hibernate.UserDaoImp">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<bean id="userServiceTarget"
class="com.ygkq.usermanager.model.service.spring.UserServiceImp">
<property name="userdao">
<ref local="userDaoImp" />
</property>
</bean>
<bean id="userService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="target">
<ref local="userServiceTarget" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>
action-servlet.xml文件:
<!—Spring辅助Struts管理Struts-à
<?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">
<bean name="/doUser"
class="com.ygkq.usermanager.view.struts.action.UserAction"
scope="prototype">
</bean>
</beans>
3,最后就是Hibernate的hibernate.cfg..xml文件:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="connection.username">wangxiaodong</property>
<property name="connection.url">
jdbc:oracle:thin:@192.168.0.2:1521:ALIZEEDB
</property>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="myeclipse.connection.profile">Test</property>
<property name="connection.password">donny</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<mapping
resource="com/ygkq/usermanager/model/entity/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
该文件基本上不用动,都是自动生成的代码;当然,你也可以根据自己的需要添加代码,例如,你想在执行HQL语句的时候让它显示SQL语句,可将
<property name="hibernate.show_sql">true</property>
插入代码中;
另外在图(1)中还有两个配置文件没有提到,那就是log4j.properties 与 mytag.tld;其中log4j.properties是配置日志信息的;而mytag.tld主一个自定义标签;
四, SSH框架搭建完成:
SSH框架基本搭建完成,如果有不对或者不妥之处,请随时指教!~
E-mail:jerry8059@163.com