第一步、导入sprint4、struts2和hibernate4的jar包

struts2的jar包

commons-fileupload-1.3.3.jar

commons-io-2.5.jar

commons-lang3-3.6.jar

freemarker-2.3.26-incubating.jar

javassist-3.20.0-GA.jar

log4j-api-2.10.0.jar

ognl-3.1.15.jar

struts2-core-2.5.17.jar

struts2-spring-plugin-2.5.17.jar(和spring4整合使用)

hibernate5的jar包

antlr-2.7.7.jar

dom4j-1.6.1.jar

geronimo-jta_1.1_spec-1.1.1.jar

hibernate-commons-annotations-5.0.1.Final.jar

hibernate-core-5.0.7.Final.jar

hibernate-jpa-2.1-api-1.0.0.Final.jar

jandex-2.0.0.Final.jar

javassist-3.18.1-GA.jar

jboss-logging-3.3.0.Final.jar

spring4的jar包

spring-beans-4.0.0.RELEASE.jar

spring-context-4.0.0.RELEASE.jar

spring-core-4.0.0.RELEASE.jar

spring-expression-4.0.0.RELEASE.jar

spring-jdbc-4.0.0.RELEASE.jar

spring-tx-4.0.0.RELEASE.jar

spring-web-4.0.0.RELEASE.jar

第二步、配置web.xml配置文件

<!-- 配置struts2的过滤器-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!-- 设置spring的配置文件的位置-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param> <!-- 设置spring4的监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

第三步、配置spring的struts2的配置文件

spring配置文件applicationContext.xml

<!-- 定义数据源,这里使用的jdbc。也可以使用c3p0等连接池 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql:///blog"></property>
<property name="username" value="root"></property>
<property name="password" value="1234"></property>
</bean> <!-- 配置hibernate5 的 sessionFactory,交由spring来管理。不用在程序里自己new -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property> <!-- 配置hibernate相关属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property> <!-- 配置关联关系映射文件 的方式之一 -->
<property name="mappingResources">
<list>
<value>com/tzblog/bean/Album.hbm.xml</value>
<value>com/tzblog/bean/Article.hbm.xml</value>
<value>com/tzblog/bean/Critique.hbm.xml</value>
<value>com/tzblog/bean/Me.hbm.xml</value>
<value>com/tzblog/bean/Photo.hbm.xml</value>
</list>
</property>
</bean> <!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- struts2 的 Action 交由 spring来管理,在struts.xml中的action的class里填写bean id -->
<bean id="IndexAction" class="com.tzblog.action.IndexAction">
<property name="articleDAO" ref="articleDAO" />
<property name="critiqueDAO" ref="critiqueDAO"/>
</bean>
<bean id="AlbumAction" class="com.tzblog.action.AlbumAction">
<property name="albumService" ref="albumService" />
</bean>
<bean id="ArticleAction" class="com.tzblog.action.ArticleAction">
</bean>
<bean id="MeAction" class="com.tzblog.action.MeAction">
<property name="meService" ref="meService" />
</bean>
<bean id="CritiqueAction" class="com.tzblog.action.CritiqueAction">
<property name="critiqueService" ref="critiqueService" />
</bean> <!-- Service -->
<bean id="albumService" class="com.tzblog.service.AlbumService"></bean>
<bean id="meService" class="com.tzblog.service.MeService">
<!-- meService要用的对象,下面的一样 -->
<property name="meDAO" ref="meDAO"/>
</bean>
<bean id="critiqueService" class="com.tzblog.service.CritiqueService"></bean> <!-- DAO -->
<bean id="albumDAO" class="com.tzblog.dao.AlbumDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="articleDAO" class="com.tzblog.dao.ArticleDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="critiqueDAO" class="com.tzblog.dao.CritiqueDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="meDAO" class="com.tzblog.dao.MeDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="photoDAO" class="com.tzblog.dao.PhotoDAO"/>

struts2的配置文件struts.xml

  <!-- 开启开发模式,在不使用spring的时候可以自动热部署-->
<constant name="struts.devMode" value="true">
<!-- strict-method-invocation="false" 的作用是允许使用通配符 -->
<package name="article" namespace="/" extends="struts-default" strict-method-invocation="false">
<action name="article_*" class="ArticleAction" method="{1}">
<result name="success">/WEB-INF/jsp/article.jsp</result>
<result name="detail">/WEB-INF/jsp/article_detail.jsp</result>
</action> <action name="index" class="IndexAction">
<result name="success">/WEB-INF/jsp/index.jsp</result>
</action> <action name="about" class="MeAction">
<result>/WEB-INF/jsp/aboutMe.jsp</result>
</action> <action name="album_*" class="AlbumAction" method="{1}">
<result>/WEB-INF/jsp/album.jsp</result>
<result name="input">/WEB-INF/jsp/album_detail.jsp</result>
</action> <action name="critique_*" class="CritiqueAction" method="{1}">
<result>/WEB-INF/jsp/critique.jsp</result>
<result name="input" type="redirectAction">critique</result>
</action>
</package>

hibernate的配置文件

因为已经交由spring来管理hibernate,所有不再需要hibernate.cfg.xml文件。但是还是需要hibernate关系映射文件。

SSH小项目整合的简单记录的更多相关文章

  1. python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)

    ''' 自己独立写一个学员管理系统 表结构: 班级表: -id -grade_name 学生表: -id -student_name -grade 关联外键班级表 老师表: -id -teacher_ ...

  2. IOS-小项目(饿了么 网络部分 简单实现)

    在介绍小项目之前,在此说明一下此代码并非本人所写,我只是随笔的整理者. 在介绍之前先展现一下效果图. 看过效果图大家应该很熟悉了,就是饿了么的一个界面而已,值得注意的是,实现时并没有采用本地连接,而是 ...

  3. 封闭的一个多月,老菜鸟的 机械手和AGV 自动搬运小项目总结

    最近上海疫情严重,闲赋在家无事可做,手机里不断的推送一些无脑的谩骂声音,索性找点事情做,将3月份实施的一个自动搬运小项目做一个简单的汇总,便于今后项目实施中积累一些经验.项目需求非常简单,因为能力有限 ...

  4. Java小项目之:教你做个聊天系统!

    Java小项目之:聊天系统 今天给大家带来的java练手小项目是一个简单的聊天室,界面简单,操作不难. 分为注册系统,登录系统和聊天系统三部分,很适合java小白练手. 完整的源码和素材请关注并私信我 ...

  5. 【Arduino学习笔记05】Arduino数字输入、输出和脉冲宽带调制 -- 小项目:彩色小台灯

    基本功能: 长按控制按钮开机,长按控制按钮关机(>3s) 通过三个调节按钮调节灯的颜色,每一个按钮分别对应R,G,B值 模式切换:短按控制按钮切换模式(长亮模式/闪烁模式) 元器件清单: Ard ...

  6. SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)

    这篇博文的目的 尝试搭建一个完整的SSH框架项目. 给以后的自己,也给别人一个参考. 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hiberna ...

  7. web实践小项目<一>:简单日程管理系统(涉及html/css,javascript,python,sql,日期处理)

    暑假自学了些html/css,javascript和python,苦于学完无处练手几乎过目即忘...最后在同学的建议下做了个简单日程管理系统.借第一版完成之际,希望能将实践期间犯过的错误和获得的新知进 ...

  8. FreeMarker与SSH项目整合流程

    FreeMarker与SSH项目整合流程 学习了SSH之后,一般为了减少数据库的压力,会使用FreeMarker来生成静态HTML页面.下面简单说一下FreeMarker与SSH项目的整合全过程~ 前 ...

  9. J2EE进阶(六)SSH框架工作流程项目整合实例讲解

    J2EE进阶(六)SSH框架工作流程项目整合实例讲解 请求流程 经过实际项目的进行,结合三大框架各自的运行机理可分析得出SSH整合框架的大致工作流程. 首先查看一下客户端的请求信息: 对于一个Web项 ...

随机推荐

  1. CCproxy 设置代理服务器。

    CCproxy 设置代理服务器. 通过代理服务器上网,出口IP就固定成代理服务器的IP 设置安装比较简单,直接去ccproxy官网下载就行 如果服务器是公网服务器,记得在设置,高级里面的网络中,把禁止 ...

  2. linux中grep工具

    正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义.其实grep还可以找出符合某个模式(Pattern)的一类字符串.例如找出所有符合xxxxx@xxxx. ...

  3. WPF 出现“调用线程无法访问此对象,因为另一个线程拥有该对象”

    引起这种错误多半是由于在非UI线程刷新界面,解决此问题可以使用Dispatcher this.Dispatcher.Invoke(new Action(() => { UpdateUI(stri ...

  4. 「小程序JAVA实战」小程序视频上传方法的抽象复用(57)

    转自:https://idig8.com/2018/09/23/xiaochengxujavashizhanxiaochengxushipinshangchuanfangfadechouxiangfu ...

  5. CDN理解<转>

    CDN则是更高级的手段.CDN到底如何工作的呢,让我们来大概了解一下! CDN的基础百科资料也很多了,我也稍等提一下.CDN,Content Distribute Network,即:内容分发网络. ...

  6. C++全总结

    // CPPTEST.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include & ...

  7. Glow Shader

    [Glow Shader] Glow Shader基于BlurShader来实现.总的来说分为2步: 1.利用BlurShader渲染出BlurTexture. 2.将BlurTexture与SrcT ...

  8. MYSQL TIMESTAMP with implicit DEFAULT value is deprecated.

    TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp se ...

  9. S 配置邮箱

  10. CSS使文字、大小不固定的图片垂直居中

    一:单行文字垂直居中 使用line-height为父元素高度即可. 二:多行文字垂直居中 使用display:table-cell属性. 将父元素设置为display:table-cell,同时ver ...