Struts2

  • Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
  • Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。
  • 虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

Spring

  • Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

Hibernate

  • Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
  • Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

SSH

  • SSH就是把上面的3个框架集成起来,由Spring管理Struts2和Hibernate相关对象的创建,在由Hibernate处理持久层,Struts处理控制器和视图层。

pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.jege.ssh</groupId>
  5. <artifactId>struts2-spring3-hibernate3-xml</artifactId>
  6. <version>1.0.0.RELEASE</version>
  7. <packaging>jar</packaging>
  8. <name>struts2-spring3-hibernate3-xml</name>
  9. <url>http://blog.csdn.net/je_ge</url>
  10. <developers>
  11. <developer>
  12. <id>je_ge</id>
  13. <name>je_ge</name>
  14. <email>1272434821@qq.com</email>
  15. <url>http://blog.csdn.net/je_ge</url>
  16. <timezone>8</timezone>
  17. </developer>
  18. </developers>
  19. <properties>
  20. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  21. <spring.version>3.2.16.RELEASE</spring.version>
  22. <hibernate.version>3.6.5.Final</hibernate.version>
  23. <struts.version>2.3.24</struts.version>
  24. <mysql.version>5.1.40</mysql.version>
  25. <junit.version>4.12</junit.version>
  26. <java.version>1.8</java.version>
  27. </properties>
  28. <dependencies>
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-orm</artifactId>
  32. <version>${spring.version}</version>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework</groupId>
  36. <artifactId>spring-context</artifactId>
  37. <version>${spring.version}</version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework</groupId>
  41. <artifactId>spring-web</artifactId>
  42. <version>${spring.version}</version>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-test</artifactId>
  47. <version>${spring.version}</version>
  48. <scope>test</scope>
  49. </dependency>
  50. <dependency>
  51. <groupId>org.hibernate</groupId>
  52. <artifactId>hibernate-core</artifactId>
  53. <version>${hibernate.version}</version>
  54. </dependency>
  55. <dependency>
  56. <groupId>org.hibernate</groupId>
  57. <artifactId>hibernate-entitymanager</artifactId>
  58. <version>${hibernate.version}</version>
  59. </dependency>
  60. <!-- struts -->
  61. <dependency>
  62. <groupId>org.apache.struts</groupId>
  63. <artifactId>struts2-core</artifactId>
  64. <version>${struts.version}</version>
  65. <!-- 排除不需要 -->
  66. <exclusions>
  67. <exclusion>
  68. <groupId>org.javassist</groupId>
  69. <artifactId>javassist</artifactId>
  70. </exclusion>
  71. </exclusions>
  72. </dependency>
  73. <dependency>
  74. <groupId>org.apache.struts</groupId>
  75. <artifactId>struts2-spring-plugin</artifactId>
  76. <version>${struts.version}</version>
  77. <!-- 把所有依赖都过滤 -->
  78. <exclusions>
  79. <exclusion>
  80. <groupId>*</groupId>
  81. <artifactId>*</artifactId>
  82. </exclusion>
  83. </exclusions>
  84. </dependency>
  85. <dependency>
  86. <groupId>log4j</groupId>
  87. <artifactId>log4j</artifactId>
  88. <version>1.2.15</version>
  89. <!-- 过滤掉所有依赖的jar文件不使用 -->
  90. <exclusions>
  91. <exclusion>
  92. <groupId>*</groupId>
  93. <artifactId>*</artifactId>
  94. </exclusion>
  95. </exclusions>
  96. </dependency>
  97. <dependency>
  98. <groupId>commons-dbcp</groupId>
  99. <artifactId>commons-dbcp</artifactId>
  100. <version>1.4</version>
  101. </dependency>
  102. <dependency>
  103. <groupId>mysql</groupId>
  104. <artifactId>mysql-connector-java</artifactId>
  105. <version>${mysql.version}</version>
  106. </dependency>
  107. <dependency>
  108. <groupId>junit</groupId>
  109. <artifactId>junit</artifactId>
  110. <version>${junit.version}</version>
  111. <scope>test</scope>
  112. </dependency>
  113. </dependencies>
  114. <build>
  115. <finalName>struts2-spring3-hibernate3-xml</finalName>
  116. <plugins>
  117. <plugin>
  118. <groupId>org.apache.maven.plugins</groupId>
  119. <artifactId>maven-compiler-plugin</artifactId>
  120. <configuration>
  121. <source>${java.version}</source>
  122. <target>${java.version}</target>
  123. </configuration>
  124. </plugin>
  125. <plugin>
  126. <groupId>org.mortbay.jetty</groupId>
  127. <artifactId>jetty-maven-plugin</artifactId>
  128. <version>8.1.16.v20140903</version>
  129. <configuration>
  130. <webAppConfig>
  131. <contextPath>/</contextPath>
  132. </webAppConfig>
  133. </configuration>
  134. </plugin>
  135. </plugins>
  136. </build>
  137. </project>

jdbc.properties

  1. jdbc.driverClassName=com.mysql.jdbc.Driver
  2. jdbc.username=root
  3. jdbc.password=admin
  4. jdbc.url=jdbc:mysql:///ssh?createDatabaseIfNotExist=true
  5. hibernate.show_sql=true
  6. hibernate.hbm2ddl.auto=update
  7. hibernate.dialect=org.hibernate.dialect.MySQLDialect

applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="
  6. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  8. <context:property-placeholder location="classpath:jdbc.properties" />
  9. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  10. <property name="driverClassName" value="${jdbc.driverClassName}" />
  11. <property name="username" value="${jdbc.username}" />
  12. <property name="password" value="${jdbc.password}" />
  13. <property name="url" value="${jdbc.url}" />
  14. </bean>
  15. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  16. <property name="dataSource" ref="dataSource" />
  17. <property name="mappingResources" value="com/jege/ssh/entity/User.hbm.xml" />
  18. <!-- hibernate的其他配置信息,必须添加hibernate.前缀 -->
  19. <property name="hibernateProperties">
  20. <props>
  21. <prop key="hibernate.dialect">${hibernate.dialect}</prop>
  22. <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
  23. <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
  24. </props>
  25. </property>
  26. </bean>
  27. <import resource="classpath:applicationContext-manager.xml" />
  28. </beans>

applicationContext-manager.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="
  4. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <bean id="userDAO" class="com.jege.ssh.dao.impl.UserDAOImpl">
  6. <property name="sessionFactory" ref="sessionFactory" />
  7. </bean>
  8. <bean id="userService" class="com.jege.ssh.service.impl.UserServiceImpl">
  9. <property name="userDAO" ref="userDAO" />
  10. </bean>
  11. <bean id="userAction" class="com.jege.ssh.action.UserAction" scope="prototype">
  12. <property name="userService" ref="userService" />
  13. </bean>
  14. </beans>

User.hbm.xml

  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  4. <hibernate-mapping package="com.jege.ssh.entity">
  5. <class name="User" table="t_user">
  6. <id name="id">
  7. <generator class="native" />
  8. </id>
  9. <property name="name" />
  10. <property name="age" />
  11. </class>
  12. </hibernate-mapping>

源码地址

https://github.com/je-ge/framework

如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。您的支持将鼓励我继续创作!谢谢!



Struts2 Spring3 Hibernate3 集成xml版本的更多相关文章

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

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

  2. Eclipse 搭建struts2 spring3 hibernate3环境实战 待完善

    1.struts2 目前是2.3版本,下载地址http://struts.apache.org/download.cgi struts2包 struts2-core-2.3.16.3.jar stru ...

  3. 【Struts2+Spring3+Hibernate3】SSH框架整合实现CRUD_1.2

    作者: hzboy192@192.com Blog: http://my.csdn.net/peng_hao1988 版本总览:http://blog.csdn.net/peng_hao1988/ar ...

  4. Struts2+Spring3+Hibernate3+Maven构建(基于Eclipse)

    长时间不做后台了,整理一下资料,以便翻阅. Eclipse.JDK安装略…… Maven下载地址:http://maven.apache.org/download.cgi 版本比较新的Eclipse基 ...

  5. 【Struts2+Spring3+Hibernate3】SSH框架整合实现CRUD_1.3

    作者: hzboy192@192.com Blog: http://my.csdn.net/peng_hao1988 版本总览:http://blog.csdn.net/peng_hao1988/ar ...

  6. struts2+spring3+hibernate3+mysql简单登录实现

    1.导入相关的jar包 2.建立数据库 1 create table account( 2 id int(10), 3 user varchar(50), 4 paw varchar(50) 5 ); ...

  7. Struts2.0+Spring3+Hibernate3(SSH~Demo)

    Struts2.0+Spring3+Hibernate3(SSH~Demo) 前言:整理一些集成框架,发现网上都是一些半成品,都是共享一部分出来(确实让人很纠结),这是整理了一份SSH的测试案例,完全 ...

  8. 简易的CRM系统案例之Struts2&Spring整合+Hibernate3+JSP+MySQL版本

    主要对上一篇Struts2&Spring整合的改造 简易的CRM系统案例之Struts2+Hibernate3+JSP+MySQL版本 src/bean.xml <beans xmlns ...

  9. ExtJs、Struts2、Hibernate3.2登录页面的简单实现

    1.思想的大致模型 2.建立数据库test和数据库表tb_user 1 CREATEDATABASE `test`; 2  CREATETABLE `test`.`tb_user` ( 3 `user ...

随机推荐

  1. lucene 查询+分页+排序

    lucene 查询+分页+排序 1.定义一个工厂类 LuceneFactory 1 import java.io.IOException; 2 3 import org.apache.lucene.a ...

  2. xls===>csv tables===via python ===> sqlite3.db

    I've got some files which can help a little bit to figure out where people are from based on their I ...

  3. apache cxf笔记之Spring客户端访问和调用webservice服务

    继续上次的spring服务的问题,这边介绍一种spring配置客户端的方法. 1.src目录下新建client-beans.xml文件 <?xml version="1.0" ...

  4. java.io.IOException: Unable to open sync connection!的解决方案

    在学习Android的时候,经常是使用手机调试程序,很方便,后来 在使用手机调试程序的时候出现了 [2012-03-08 11:27:43 - Tea_marsListActivity] ------ ...

  5. hdu 4515 年月份模拟题

    小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) ...

  6. jq模糊匹配

    jq是一般程序员在前台开发的时候都会使用的技术,其中模糊匹配查询在动态添加标签的时候经常用到,这里我写出我经常用到的几个模糊匹配的方法.其中有:^(前缀).$(后缀).*(包含)例如有这样一段代码: ...

  7. javascript代码实现简单的五星评价功能!

    <script type="text/javascript"> //★ var spans=document.getElementsByTagName("sp ...

  8. 在VisualStudio中显示当前的分支名

    当项目多的时候,当分支多的时候,当会议多的时候. 你打开VS,你是否犹豫过,"我现在是打开的哪个分支?!!!!??!" 如果你米有犹豫过,是否有过,"FXXXXK, 我怎 ...

  9. document.referrer之隐藏来源

    document.referrer document.referrer是用来获取跳转链接的来源,正规的解释是:referrer 属性可返回载入当前文档的文档的 URL. 实际中使用在广告相关业务中较多 ...

  10. PRD学习笔记:一些需要注意的说明

    控件说明 1)输入框 若输入框有默认提示,点击输入框,弹出软键盘. 当输入框内不为空(空格除外)时,默认显示消失. 2)软键盘的弹出及退去机制 当输入框内必须输入的为数字时,弹出数字软键盘.其余时候, ...