ssh框架使用(ssh框架菜鸟教程)
今天给各位分享关于ssh框架菜鸟教程(ssh框架使用)的知识,希望对你有帮助,现在开始把!
1、SSH不是一个框架,而是几个框架的集成(struts+spring+hibernate)。它是一个流行的Web应用程序开源集成框架,用于构建灵活、可扩展的多层Web应用程序。SSH框架集成系统按照职责分为四层:表示层、业务逻辑层、数据持久层和领域模块层,目的是帮助开发者在短时间内构建一个结构清晰、复用性好、易于维护的Web应用。
2、Struts作为系统的整体架构,负责MVC的分离。在Struts框架的模型部分,控制业务跳转,使用hibernate框架支持持久层。Spring管理Struts和Hibernate。
3、SSH框架系统是基于MVC的。Struts是一个很好的MVC框架,它的主要技术是Servlet和 *** P。StrutsMVC设计模式可以让我们的逻辑清晰,让我们写的程序层次分明。
4、基于Struts的开发可以简化开发难度,提高开发效率。Spring提供了一致的方式来管理业务对象,并且鼓励注入编程接口而不是类的好习惯,这样我们的产品就可以更大程度的解耦。Hibernate用于持久化数据,并提供完全面向对象的数据库操作。
5、Hibernate非常轻松地封装了JDBC,这使得处理关系数据库变得很容易。在Struts+Spring+Hibernate系统中,对象之间的调用过程如下:
6、struts——>春天——>冬眠 *** P—>动作——>服务——>道———>冬眠例如:1的配置文件bean.xml。春天<?xml版本=”0″编码=”UTF-8″?><豆子xmlns=”http://www.springframework.org/schema/beans”xsi:schemalocation=”http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-1.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd”xmlns:tx=”http://www.springframework.org/schema/tx”><beanid=”数据源”class=”com.mchange.v2.c3p0.combobooleddatasource”destroy-method=”关闭”><属性名=”jdbcUrl”value=”JDBC:MySQL://localhost:3306/Samblog?useUnicode=true&字符编码=UTF-8&autoReconnect=true”></property><属性名=”用户”value=”根”></property><属性名=”密码”value=″></property><属性名=”driverClass”value=”org.gjt.mm.MySQL.driver”/></bean><beanid=”sessionFactory”class=”org.springframework.ORM.hibernate5.localsessionfactorybean”><属性名=”数据源”><refbean=”数据源”/></property><属性名=”hibernateProperties”><值>hibernate.dialect=org.hibernate.dialect.MySQL5dialecthibernate.hbm2ddl.auto=updatehibernate.show_sql=falsehibernate.format_sql=false</value></property><属性名=”mappingResources”><列表><值>site/sambloger/domain/users.hbm.XML<值>site/sambloger/domain/blog.hbm.XML<值>site/sambloger/domain/category.hbm.XML<值>site/sambloger/domain/comment.hbm.XML</list></property></bean><beanid=”transactionManager”class=”org.springframework.ORM.hibernate5.hibernatetransactionmanager”><属性名=”sessionFactory”ref=”sessionFactory”/></bean><tx:注释驱动的事务管理器=”transactionManager”/><!–配置Blogspring,通过直接调用服务层来管理数据库的CRUD–><beanid=”博客岛”class=”site.Sambloger.Dao.impl.blogdaoimpl”><属性名=”sessionFactory”ref=”sessionFactory”/></bean><beanid=”博 *** 务”class=”site.Sambloger.service.impl.blogserviceimpl”scope=”原型”><属性名=”博客岛”ref=”博客岛”/></bean><beanid=”blogAction”class=”site.Sambloger.action.blogaction”><属性名=”博 *** 务”ref=”博 *** 务”/><属性名=”commentService”ref=”commentService”/></bean><!–评论–配置><beanid=”评论道”class=”site.sambloger.Dao.impl.commentdaoimpl”><属性名=”sessionFactory”ref=”sessionFactory”/></bean><beanid=”commentService”class=”site.Sambloger.service.impl.commentserviceimpl”scope=”原型”><属性名=”评论道”ref=”评论道”/></bean><beanid=”评论”class=”site.sambloger.action.commentaction”><属性名=”commentService”ref=”commentService”/><属性名=”博 *** 务”ref=”博 *** 务”/></bean><!–配置用户–><beanid=”用户岛”class=”site.Sambloger.Dao.impl.usersdaoimpl”><属性名=”sessionFactory”ref=”sessionFactory”></property></bean><beanid=”用户服务”class=”site.Sambloger.service.impl.usersserviceimpl”scope=”原型”><属性名=”用户岛”ref=”用户岛”/></bean><beanid=”用户操作”class=”site.sambloger.action.usersaction”><属性名=”用户服务”ref=”用户服务”></property></bean></beans>Struts配置文件struts.xml<?xml版本=”0″编码=”UTF-8″?><!DOCTYPEstrutsPUBLIC”-//Apache软件基础//DTDStruts配置1//EN”“http://struts.apache.org/dtds/struts-dtd”><struts><包名=”samblog”extends=”struts-默认”名称空间=”/”><动作名称=”init”class=”blogAction” *** =”init”><结果名称=”成功”>/bloglist. *** P</action><动作名称=”getBlog”class=”blogAction” *** =”getBlog”><结果名称=”成功”>/displayblog. *** P</action><动作名称=”getAllNote”class=”blogAction” *** =”getAllNote”><结果名称=”成功”>/notelist. *** P</action><动作名称=”addComment”class=”评论” *** =”addComment”><结果名称=”成功”type=”重定向”>/getblog</action></package></struts>三分之Hibernate的配置文件:<?xml版本=”0″编码=”utf-8″?><!doctypehibernate-映射公共“-//Hibernate/Hibernate映射dtd0//EN””http://www.hibernate.org/dtd/hibernate-mapping-0.dtd”><!–由MyEclipse持久性工具自动生成的Tools–><hibernate-mapping><类名=”site.sambloger.domain.blog”table=”博客”><!–id表示其他属性表示映射到数据库的普通键作为主键–><idname=”id”type=”Java.lang.integer”><列名=”id”/><生成器class=”增量”/></id><!–标签加n端会有一个名为category_id的字段作为外键引用1(Category)的主键字段,用来存储这个主键的信息–><多对一name=”类别”class=”site.sambloger.domain.category”懒惰=”假”cascade=”所有”><列名=”category_id”not-null=”真”/></多对一><属性名=”标题”type=”Java.lang.string”><列名=”标题”长度=”400″not-null=”真”/></property><属性名=”内容”type=”Java.lang.string”><列名=”内容”长度=”4000″not-null=”真”/></property><属性名=”createdTime”type=”Java.util.date”><列名=”created_time”长度=”10″not-null=”真”/></property><!–在一对多关联中,在自己的博客中设置inverse="true"更有利于优化,因为这样可以减少update语句的执行–><setname=”评论”逆=”真”><key><列名=”blog_id”not-null=”真”/></key><一对多class=”site.sambloger.domain.comment”/></set></class></hibernate-mapping>Spring框架的功能和好处:Spring框架提供了一个容器,可以管理应用程序的组件,还提供了IoC和AoP机制来解耦组件,提高程序结构的灵活性,增强系统的可维护性和可扩展性。
7、SSH集成开发中,Spring用于管理服务、DAO等组件,IoC机制用于实现服务和DAO之间的低耦合调用。使用AoP机制实现事务管理和常用功能的切入。这是功能集成,但它的优势是解耦。
8、Hibernate中的操作并发(乐观锁和悲观锁)Hibernate框架可以使用锁机制来解决操作并发。A.悲观锁当数据被查询出来的时候,给数据加一个锁,锁住它。这样,其他用户不允许再次删除或更改。
9、当被占用的事务结束时,锁将被自动释放。Hibernate采用数据库锁机制实现悲观锁控制。缺点:同步并发用户操作,逐个处理。
10、当一个用户处理时间长了,效率就会低。B.乐观锁定允许同时提交更新,但最快的会成功,慢的会失败。向记录追加一个字段值,并将该字段值用作版本。
11、当之一个提交者提交时,version字段的值会自动升高,这样其他用户在提交时会发现该版本低于数据库中记录的当前版本,因此会抛出异常并失败。特点:允许用户同时处理,但只有一个成功,其他失败会以非正常方式提示。SSH工作流A.启动服务器,加载项目和web.xml.(实例化Lisener、Filter等组件,并创建Spring容器和Struts2控件)B.客户端发送一个请求,所有请求进入Struts2控制器。
12、根据不同类型的请求,控制器分别进行处理。(动作请求,*。操作将进入struts.xml以查找其他请求,*。
13、jsp将直接调用请求资源来生成响应信息)C.Struts2控制器根据集成 *** 1:将动作赋予Spring容器。(动作对象由struts2-spring-plugin.jar插件提供。StrutsSpringObjectFactory负责从Spring容器中获取它)集成 *** 2:将动作放在Spring容器之外。
14、(动作对象由struts2-spring-plugin.jar插件提供。StrutsSpringObjectFactory负责创建,然后在Spring容器中查找与Action属性匹配的Bean对象,并将它们注入Action对象。(默认情况下采用名称匹配规则)D.Struts2控制器执行组件处理,如defaultStack拦截器、操作对象和结果。
15、E.当执行Action的executebusiness *** 时,如果使用了Service或DAO,它会被Spring的IoC机制调用。f.执行结果生成响应信息,并执行后续拦截器处理G.输出响应信息。
ssh框架菜鸟教程(ssh框架使用)的介绍就到这里,感觉你的阅读!
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 203304862@qq.com
本文链接:https://jinnalai.com/n/189956.html