通向架构师的道路(第二十一天)万能框架spring(三)之SSH
- 格式:pdf
- 大小:5.37 MB
- 文档页数:26
ssh框架原理及流程SSH框架原理及流程。
SSH框架是指Struts、Spring、Hibernate三个开源框架的整合,它们分别解决了Web层、业务逻辑层和数据访问层的问题。
在实际开发中,SSH框架已经成为了JavaEE开发的主流框架之一。
本文将从SSH框架的原理和流程两个方面进行介绍。
首先,我们来了解一下SSH框架的原理。
Struts框架主要用于处理Web层的请求,它采用MVC(Model-View-Controller)的设计模式,将应用程序分为模型、视图和控制器三个部分。
Spring框架是一个轻量级的IoC(控制反转)和AOP(面向切面编程)容器,它提供了一个全面的基础设施,用于构建企业级应用。
Hibernate框架则是用来解决数据访问层的问题,它是一个强大的、高性能的对象关系映射(ORM)框架,能够将对象和数据库表之间进行映射,从而简化了数据访问层的开发。
接下来,我们将介绍SSH框架的流程。
首先,用户发送请求到Struts的Action,Action根据请求调用相应的业务逻辑,然后将处理结果返回给用户。
在这个过程中,Spring负责管理业务逻辑组件,提供了IoC容器和AOP框架的支持。
同时,Hibernate负责处理数据的持久化,它可以通过配置文件来映射Java对象和数据库表,从而实现数据的增删改查操作。
整个流程中,三个框架各司其职,相互配合,使得开发变得更加高效和简洁。
总结一下,SSH框架的原理是由Struts、Spring、Hibernate三个框架整合而成,分别解决了Web层、业务逻辑层和数据访问层的问题。
在实际开发中,SSH框架的流程是用户发送请求到Struts的Action,Action调用业务逻辑,Spring负责管理业务逻辑组件,Hibernate负责数据持久化。
三个框架相互配合,使得开发变得更加高效和简洁。
通过本文的介绍,相信读者对SSH框架的原理和流程有了更深入的了解,希望能够对大家在实际开发中有所帮助。
框架的搭点击完成。
更改Folder路径,选择SSH项目WebRoot文件夹下的WEB-INF,完成。
SSH框架搭建详细图文教程现在项目的目录结构如下,Spring框架添加完成。
SSH框架搭建详细图文教程4.连接数据库。
点击右上角的图标"打开透视图",选择MyEclipse Database Explorer。
在窗口中右键->New 新建一个数据库连接。
SSH框架搭建详细图文教程Driver template 选择 MySQL Connector/JDriver name 起名叫testConnection URL 更改为jdbc:mysql://自己的IP地址:端口号/数据库名称User name 填写MySQL的用户名Password 填写MySQL的密码Driver JARs 点击Add JARs按钮,浏览到事先准备的mysql-connector-java-5.0.8-bin.jar Save password 选上SSH框架搭建详细图文教程点击Test Driver,测试结果:数据库配置正确,点击完成。
SSH框架搭建详细图文教程双击添加的test连接,展开目录,可以发现我们事先创建的user表。
SSH框架搭建详细图文教程5.添加Hibernate框架。
右键SSH项目,选择MyEclipse->Add Spring Capabilities。
点击下一步。
SSH框架搭建详细图文教程配置中选择第二项"Spring configuration file"。
把Spring与Hibernate整合到一起,点击下一步。
SSH框架搭建详细图文教程在菜单中选第二项"Existing Spring configuration file",点击下一步。
SSH框架搭建详细图文教程DB Driver选择在添加Spring框架时配置的test,点击下一步。
Java的struts、spring、hibernate精通SSH三大框架的底层机制及原理1. 什么是SSH框架SSH是由Struts、Spring、Hibernate三个框架整合而成的,它是一种企业级、全栈式框架,非常适合开发大型Web应用程序。
Struts是MVC架构模式中的控制器层,负责接收请求并转化成对应的业务逻辑进行处理,同时也控制着视图层进行渲染。
Spring是一个轻量级的开源框架,它可以被用来构建Java企业级应用,能够提供全周期的、全栈式的框架服务。
Hibernate是一个ORM(对象关系映射)框架,之前在持久化层需要进行数据库的操作,但是Hibernate可以让开发者不用直接操作数据库,而是通过Java对象与数据库进行交互。
2. SSH框架的优势SSH框架的三个组件各自拥有一系列的优势。
Struts提供了用于Web开发的MVC架构,使得应用程序的开发和维护更加清晰、明了。
Spring专注于解决企业开发中的复杂问题,比如事务管理、安全管理、远程调用、Web框架等。
Hibernate则是优秀的ORM框架,可以将Java对象与关系型数据库进行映射,让开发者不用关心具体的SQL语句。
3. SSH框架的实现机制SSH框架的三个组件相互整合,形成了一个高效、稳定、易于使用的开发框架。
在SSH框架中,Web请求首先被Struts2框架接收,Struts2框架通过ActionContext来向Action中注入Spring容器管理的Bean完成业务逻辑处理,而Bean之间的关系都是由Spring的IOC容器维护的。
声明式事务管理交给Spring框架完成,Hibernate框架在ORM层将Java对象映射到数据库记录。
下面分别来详细介绍一下SSH框架各自的底层机制及原理。
3.1 Struts2框架Struts2框架是一个基于MVC模式的Web应用程序框架。
在Struts2中,负责接收请求转发的控制器为Action。
ssh整合框架原理及流程SSH(Spring、Struts和Hibernate)框架整合的原理和流程如下:原理:1. 控制反转(IoC):IoC是一种设计原则,通过这种原则,对象之间的依赖关系由容器来控制,而非传统的直接操控。
这使得程序代码更加灵活,易于复用。
2. 依赖注入(DI):DI是IoC的一种实现方式。
通过DI,组件之间的依赖关系由容器在运行时决定,并动态地将这种关系注入到组件中。
流程:1. 建立web工程,并将其编码设置为UTF-8。
2. 将整个JSP页面也设置为UTF-8编码格式。
3. 建立三个source folder文件:src(存放源代码)、config(存放所有的配置文件,如Struts、Hibernate和Spring配置文件)、test(存放测试类)。
4. 在WebRoot\WEB-INF\lib中导入相应的jar包。
5. 配置文件。
在这个文件中,Spring容器以监听器的形式与Tomcat整合。
6. Struts负责控制Service(业务逻辑处理类),从而控制Service的生命周期。
这样层与层之间的依赖很强,属于耦合。
7. 使用Spring框架来控制Action对象(Struts中的)和Service类。
这使得两者之间的关系变得松散。
Spring的IoC机制(控制反转和依赖注入)正是用在此处。
8. Spring的AOP应用:事务的处理。
在以往的JDBCTemplate中,事务提交成功、异常处理都是通过Try/Catch来完成。
整合SSH框架的目的是提高软件开发的效率和灵活性,减少代码的冗余和复杂性,使代码更易于维护和扩展。
SSH框架简介SSH 即是Struts + Spring + Hibernate 3个开源框架。
一、Struts是一个MVC框架,通过配置文件很好的实现了模型与视图的分离,Struts应用包括3个组件:控制器组件(ActionServ let和自定义Action);模型组件(普通接口和Jav aBean);视图组件(ActionForm和Struts标签);Struts 的MVC设计模式可以使我们的逻辑变得很清晰。
Struts的工作流程:在web应用启动时就会加载初始化ActionServ let,ActionServ let从struts-conf ig.xml文件中读取配置信息,把它们存放到各种配置对象当ActionServ let接收到一个客户请求时,将执行如下流程.-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的v alidate()方法;-(4)如果ActionForm的v alidate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;-(5)ActionServ let根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;-(6)Action的execute()方法返回一个ActionForward对象,ActionServ let在把客户请求转发给ActionForward对象指向的JSP组件;-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;二、Spring是一个轻量级框架,提供依赖注入容器,AOP实现,DAO/ORM支持,Web集成等功能。
SSH框架搭建教程SSH(Spring + Spring MVC + Hibernate)是一种JavaEE开发的框架组合,被广泛应用于企业级Web应用的开发。
本教程将详细介绍如何搭建SSH框架。
第一步:环境准备第二步:创建Spring项目在搭建SSH框架之前,我们需要先创建一个Spring项目。
在Eclipse中,选择“File -> New -> Project”菜单项,然后选择“Spring -> Spring Project”。
在创建项目的对话框中,选择Maven作为构建工具,并且勾选上“Create a simple project (skip archetype selection)”选项。
填写项目的基本信息后,点击“Finish”按钮开始创建项目。
这样,一个基本的Spring项目就创建完成了。
第三步:配置Spring框架在Spring项目中,我们需要创建一个配置文件(通常称为applicationContext.xml)来配置Spring框架。
该文件可以放在src/main/resources目录下。
在配置文件中,我们需要配置一些基本的Spring设置,例如数据库连接、事务管理等。
此外,我们还需要配置Spring扫描注解的包路径,以便框架能够自动发现和加载注解。
第四步:创建Hibernate实体类和映射文件在SSH框架中,Hibernate用于持久化数据。
我们需要创建相应的实体类来映射数据库表,并且编写Hibernate映射文件来描述实体类和数据库表之间的关系。
实体类可以使用Java的POJO类表示,而映射文件可以使用Hibernate的XML格式编写。
映射文件需要保存在src/main/resources目录下。
第五步:配置Hibernate框架在Spring项目中,我们需要创建一个Hibernate的配置文件(通常称为hibernate.cfg.xml)来配置Hibernate框架。
对于 java 中 SSH 框架的理解SSH 是指Struts+ spring+ hibernate 的一个集成框架,这是一种比较流行的java web 应用程序开源框架。
StrutsStruts 是一个基于Sun J2EE 平台的 MVC 框架,主要采用Servlet 和 JSP 技术来实现的。
由于 Struts 能充分满足引用开发的需求,简单易用,敏捷迅速,所以很受关注。
Struts 吧 Servlet、JSP 、自定义标签和信息资源( message resource )整合到一个统一的框架中,开发人员利用其进行开发室不用再自己编写实现全套的MVC 模式,极大的节省了时间。
SpringSpring 是一个解决了许多在 J2EE 开发中常见的问题的强大框架。
Spring 提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。
Spring 的架构基础是基于JavaBean 属性的Inversion of Control 容器。
然而,这仅仅是完整图景中的一部分:在Spring 使用IOC 容器作为构建完关注所有架构层的完整解决方案是独一无二的。
Spring 提供了唯一的数据访问抽象,包括简单和有效率的JDBC 框架,极大的改进了效率并且减少了可能的错误。
Spring 的数据访问架构还集成了 Hibernate 和其他 O/R mapping 解决方案。
Spring 还提供了唯一的事物管理抽象。
它能够在各种底层事务管理技术,例如 JTA 或者 JDBC 事务提供一个一致的编程模型。
Spring 提供了一个标准 Java 语言编写的AOP 框架,他给POJOs 提供了声明式的事务管理和其他企业事务——如果有必要还可以实现自己的 aspects 。
这个框架提供了可以和IOC 容器集成的强大而灵活的MVC web 框架。
HibernateHibernate 是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,是的java 程序员可以随心所欲的适用对象编程思维来操控数据库。
6 16JAVA三大框架ssh-Struts、Spring、Hibernate(面试时用)文章分类:Java编程JAVA三大框架ssh-Struts、Spring、HibernateStruts1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是 ActionServlet的子类。
我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理,这个Servlet 再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的action去处理。
一个扩展知识点:struts的配置文件可以有多个,可以按模块配置各自的配置文件,这样可以防止配置文件的过度膨胀;2. ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数),封装成一个什么样的formbean对象呢?看配置文件。
3.要说明的是, ActionServlet把formbean对象传递给action的execute方法之前,可能会调用formbean的validate方法进行校验,只有校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面由input属性指定,(看配置文件)作者为什么将这里命名为input属性,而不是error属性,我们后面结合实际的运行效果进行分析。
4.action执行完后要返回显示的结果视图,这个结果视图是用一个ActionForward对象来表示的,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp 页面,因为程序中使用的是在struts-config.xml配置文件为jsp页面设置的逻辑名,这样可以实现action 程序代码与返回的jsp页面名称的解耦。
SSH各框架工作原理SSH 是指以 Spring + SpringMVC + MyBatis 为基础的 Java Web 开发框架。
它是将三个框架集成在一起,以实现各自的功能,并提供了更加便捷的开发方式和高效的开发效率。
在了解 SSH 的工作原理之前,我们先来了解一下每个框架的作用和特点。
1. Spring:Spring 是一个开源的 JavaEE 框架,它提供了一个容器,负责管理对象的创建、销毁和依赖注入等工作。
Spring 的特点是灵活,它通过配置文件或注解的方式将对象进行装配,降低了耦合度,并支持面向切面编程(AOP)和事务管理等功能。
2. SpringMVC:SpringMVC 是 Spring 框架的一个模块,用于开发Web 应用程序。
它采用 MVC(Model-View-Controller)的设计模式,将业务逻辑、视图展示和用户交互分开。
SpringMVC 提供了一套基于注解的方式来映射 URL 到具体的处理方法,并支持数据校验、文件上传等常用功能。
3. MyBatis:MyBatis 是一个持久层框架,用于操作数据库。
它通过XML 配置文件或注解的方式,将 SQL 语句与 Java 对象进行映射。
MyBatis 提供了丰富的查询功能,并支持事务管理和缓存机制,可以有效地减少开发人员编写 SQL 语句的工作量。
了解了每个框架的作用和特点,下面我们来了解SSH框架是如何工作的。
1. 客户端发送请求:用户通过浏览器发送 HTTP 请求到服务器,请求的 URL 被映射到 SpringMVC 控制器的处理方法上。
2. SpringMVC 控制器处理请求:SpringMVC 根据请求的 URL,查找到对应的控制器,并调用相应的处理方法对请求进行处理。
控制器方法可以通过注解方式获取请求参数、校验数据等。
3. 控制器调用业务逻辑:在控制器中,可以调用业务逻辑层(Service)处理业务逻辑。
业务逻辑层通过依赖注入的方式获取数据库访问层(DAO)的实例。
分类:架构师之路目录(?)[+]CSDN学院讲师招募,诚邀您加入!博客Markdown编辑器上线啦PMBOK第五版精讲视频教程火星人敏捷开发1001问通向架构师的道路(第二十一天)万能框架spring(三)之SSH2012-11-12 13:5510932人阅读评论(30)收藏举报hibernate Hibernate maven Maven ssh SSH SSh ssh 框架一、前言我们有了Spring+JdbcTemplate和Spring+iBatis并结合maven的基础,搭建一个SSX这样的框架现在就和玩一样的简单了,今天我们将搭建一个使用Struts1.3,Srping3, Hibernate3的SSH1的开发框架,大家跟着我一步步走,会发觉在程序跑通后自己再动手搭建一遍这个框架,只需要30分钟。
二、SSH框架仔细看这个框架,稍微有点不一样了。
1) Spring3是通过一个hibernate template来和hibernate的dao层结合起来并且管理起hibernate的相关事务的。
因此我们自己写了一个BaseHibernateDaoSupport来用spring统一管理hibernate的事务。
2) Hibernate和Spring的结合非常方便,我们只需要写一个hibernate.xml就可以了,datasource.xml中把原先的iBatis的相关配置全部去掉它,什么都不需要加事务还是维持原有的配置不变即可,对于我们来说需要改动的是dao层,还有把service层稍微做些小调整(一两句话的调整,非常简单),可能是我看到过的最简单的一种SSX的结合方式,远比iBatis和spring的结合要easy多了。
原创:转载:译文:评论:个人资料红肠啃僵尸访问:积分:等级:排名:文章搜索博客专栏think in javainterview文章:12篇阅读:126217架构师修练之道文章:45篇阅读:1012157文章分类架构师之路随笔面经文章存档2015年03月2015年02月目录视图摘要视图订阅lifetragedy的专栏吾以吾血荐我中华之IT登录 | 注册1212530次10344第539名68篇0篇0篇1954条(36)(1)(12)(1)(3)3) Hibernate3开始可以使用jpa 或者还是传统的hbm.xml 文件这样的描述方式,在此我们坚持使用JPA 的Annotation 方式来声明我们的model 而不是使用*.hbm.xml 这样的方式。
注意:所有的包(package name )都要从原来的org.sky.ssi 变成org.sky.ssh 喽?三、搭建SSH 框架3.1建立工程我们还是使用maven 来建立我们的工程,我们工程的名字叫myssh 。
建完后照着翻外篇《第十九天》中的“四、如何让Maven 构建的工程在eclipse 里跑起来”对工程进行设置。
展开2014年01月2013年12月2013年10月阅读排行通向架构师的道路(第一天Apache 整合Tomcat通向架构师的道路(第四天Tomcat 性能调优-让小猫飞奔5天学会jaxws-webservice 编程第一天通向架构师的道路(第二天apache tomcat https 应用通向架构师的道路(第三天apache 性能调优通向架构师的道路(第五天tomcat 集群-群猫乱舞通向架构师的道路(第六天通向架构师的道路(第七天ThreadLocal 改进你的层次的划分通向架构师的道路(第八天weblogic 与apache 的整合与调优通向架构师的道路(第十天Axis2 Web Service(一)评论排行通向架构师的道路(第一天Apache 整合Tomcat我的架构师历程,其实一切(下)通向架构师的道路(第七天ThreadLocal 改进你的层次的划分通向架构师的道路(第十八Spring(一)通向架构师的道路(第二天apache tomcat https 应用通向架构师的道路(第五天tomcat 集群-群猫乱舞通向架构师的道路(第四天Tomcat 性能调优-让小猫飞奔5天学会jaxws-webservice 编程第一天think in java interview-高级开发人员面试宝典(二)通向架构师的道路(第十四Axis2 Web Service 安全之rampart推荐文章* 【ShaderToy】开篇* FFmpeg源代码简单分析:avio_open2()* 技能树之旅: 从模块分离到测试* Qt5官方demo解析集36——WigglyExample* Unity3d HDR和Bloom效果(高动态范围图像和泛光)* Android的Google官方设计指南(上)(1)(4)(2)(111488)(66415)(61084)(57202)(52385)(49834)(38355)(33367)(32885)(32750)(211)(135)(119)(99)(94)(75)(73)(71)(62)(55)3.2 maven库设置嘿嘿嘿嘿,不需要任何设置,直接把beta工程中的pom.xml文件拷贝入myssh工程中就可以用了,里面相关的spring,struts, hibernate的包我都已经事先配合了。
如果你是个图完美的的,你可以把pom.xml文件中的iBatis相关的jar给去除。
3.3 开始配置Hibernate与spring结合打开/src/main/resources/spring/datasource下的datasource.xml,把所有的关于iBatis的设置全部去除,把org.sky.ssi这样的包名全部改成org.sky.ssh。
我们在myssh工程中需要增加一个工具类,一个xml和几个用到的hibernate的model的映射,下面来看。
src/main/resources/spring/hibernate/hibernate.xml文件我们在src/main/resources/spring目录下增加一个目录叫hibernate,在这个hibernate目录下我们创建一个hibernate.xml文件。
其内容如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:p="/schema/p"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/beans/dtd/spring-beans.dtd"><bean id="hibernateSessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="packagesToScan" value="org.sky.ssh.dao.impl.*.*" /><property name="dataSource"><ref bean="dataSource" /></property><property name="annotatedClasses"><list><value>org.sky.ssh.model.TLogin</value><value>org.sky.ssh.model.TStudent</value> </list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.generate_statistics">true</prop><prop key="hibernate.connection.release_mode">auto</prop><prop key="hibernate.autoReconnect">true</prop><prop key="hibernate.hbm2ddl.auto">update</prop><prop key="hibernate.connection.autocommit">true</prop></props></property></bean></beans><property name="packagesToScan"value="org.sky.ssh.dao.impl.*.*" />这句就是代表所有的hibernate的sessionFactory自动被注入到我们的myssh工程的dao层中去,即在dao层中我们只要通过BaseHibernateDaoSupport.getSession()就可以进行相关的hibernate的数据库操作了.我们还注意到了在src/main/resources/spring/hibernate/hibernate.xml文件中有这样的hibernate的model 的映射:<property name="annotatedClasses"><list><value>org.sky.ssh.model.TLogin</value><value>org.sky.ssh.model.TStudent</value></list></property>这就是基于annotation的jpa的hibernate的model层的写法,这边的几个<value>括起来的东西就是一个个java 的.class,这些java文件都是基于jpa的annotation写法。