SSH架构学习

J2EE中三种框架Spring+Struts+Hibernate

分层示意图:

表示层(structs)
SSH架构学习
|
|
业务层(spring)
|
|
持久层(hibernate)
|
|
数据库()

Struts对Model、View和Controller都提供了对应的组件;Spring是一个轻量级的控制反转(IOC)
和面向切面(AOP)的容器框架,用基本的JavaBean来完成以前只能由EJB完成的事情;Hibernate
是一个开源对象关系映射框架,对JDBC进行了非常轻量级的对象封装,开源应用在JDBC的任何场合,
开源在Servlet/JSP的Web应用中使用,也可以在EJB的J2EE架构中取代CMP,完成数据持久化的重任。


一、 Struts

Controller组件包括两个组成-系统核心控制器和业务逻辑控制器。系统核心控制器对应ActionServlet,负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。而业务逻辑控制器负责处理用户请求,
本身不具有处理能力,而是调用Model完成处理,对应Action。Model部分用于处理用户的请求。View部分提供丰富标签库,对应JSp部分,用于显示。

Struts创建的是webproject,核心功能就是将请求和结果展示分开,不直接写死,类似MVC,而struts的
重点是C部分。
java里面的package很好的解决了重命名的问题。

用户在客户端舒服访问网址:http://.../webappname/hello,通过http协议将请求发给tomcat,
tomcat根绝webappname找到工程,找到配置文件web.xml,看里面的filter,交给struts的
filter进行处理,sturts参考struts.xml的namespace查看对应的action,对应的result,找到
result之后将请求forward给hello.jsp,这个jsp文件将内容反馈给客户端。

设计模式的优点是可扩展性好,比较灵活。

struts用绝对路径进行连接。

网站中有中文和英文版本,实现原理是用118N,加载不同的资源文件而已。

拦截器就是在调用action的时候插入自己想进行的逻辑功能。



二、 Spring

目的是解决企业应用开发复杂性,轻量级是说从大小和开销两方面来言。这个框架可以在一个大小只有1MB的jar文件里发布,处理开销也很小,此外,它是非侵入性的,spring应用中的对象不依赖与spring的特定类。控制反转(IOC)促进了松耦合。IOC是Spring的核心功能,这个容器用来管理各个对象之间的关系,是一个工厂。用IOC,一个对象依赖的其他对象会通过被动的方式传递过来,而不是这个对象自己创建或者查找依赖对象。容器
在对象初始化时不等对象请求就主动将依赖传递给它。将类在xml中用bean进行配置,进行注入。依赖注入没有侵入性,没有依赖性。


面向切面(AOP)允许通过分离应用的业务逻辑与系统级服务(审计和事务管理)进行内聚性的开发。应用对象只实现它们应该做的业务逻辑而已,并不负责其他的系统级关注点,如日志或事务支持。动态代理就是AOP的一种,可以对方法进行拦截,在拦截前后插入不同的代码功能。用Spring的AOP框架,实现代理模式很简单,只需要实现对应的拦截器即可,而无需创建自己的代理工厂。容器是指Spring包含并管理应用对象的配置和生命周期,这个意义上是一种容器。可以配置每个bean如何被创建以及如何关联。框架是指Spring可以将简单的组件配置组合成复杂的应用。Spring中,对象呗声明式的组合,存放在xml文件里,提供了很多基础功能,将应用逻辑的开发留给了你。


这些特点使代码编写干净、可管理、易于测试。


aspect是把横切性的关注点模块化的类,advice是横切性的关注点的具体实现方法,pointcut是切面应用的圈定范围,之前还是之后,joinpoint执行点,方法,weave是植入,将aspect实现到真正的目标上的joinpoint的过程。

三、 Hibernate

它是一个开源对象关系映射框架,对jDBC进行了轻量级对象封装,使开发者可以用对象编程思维来操纵数据库。

它的核心接口有5个:Session、SessionFactory、Transaction、Query和Configuration。通过这些接口,可以对持久化对象进行存取,还能进行事务控制。Session接口负责执行被持久化对象的增删改查操作,但是非线程安全的。SessionFactory接口负责初始化Hibernate,充当数据存储源的代理,并创建Session对象,这里用到了工厂模式。每一个数据库指定一个SessionFactory。Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。Transaction接口负责事务相关的操作。开发人员也可以编写自己的底层事务处理代码。
Query和Criteria接口负责执行各种数据库查询。Hibernate作用是帮我们将实体存储到关系型数据库中,用户不用写insert等语句,而是建立一个用户、组,将关系存储起来,操作对象就相当于操作数据库。用Hibernate进行封装,移植性好,修改配置文件即可,非常方便。


四、名词

ORM是Object/RelationMapping,即对象关系映射。现在企业级引用用面向对象的方式开发,而数据库以关系型数据库为主,因此在两者之间的中间件的形式出现的是ORM,实现程序对象到关系数据库数据的映射。而Hibernate就是这样的一个例子。


事务是指访问并可能更新数据库中各种数据项的一个程序执行单元。通常由高级数据库操作语言或者编程语言(SQL、C++、Java)写的用户程序的执行引起。如在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。事务有原子性、一致性、隔离性和持久性。

MVC中M指数据模型、V指用户界面、C指控制器。使用MVC目的是将M和V实现代码分离,使同一个程序可以用不同形式表现。C的目的是确保M和V的同步。

框架和设计模式不同,一个框架中可以含有多个设计模式,框架总是针对某一特定应用领域,但同一模式却适合多种应用,可以说框架是软件,而设计模式是软件的知识。

移动互联网就是将移动通信和互联网二者结合起来,成为一体。

ssd(Solid StateDisk)是固态硬盘。特点是读写速度很快,低功耗,抗震动,低热量,体积下,工作温度范围大,容价比低,寿命限制长,但是缺乏移动设备的支持。

O2O(Online ToOffline)即将线下商务和互联网结合在一起,让互联网成为线下交易的前台。线下服务可以用线上来揽客,消费者用线上来筛选服务,特点是推广效果可查,每笔交易可跟踪。


CVPR全称是IEEE Conference on Computer Vision and PatternRecogniton,即IEEE国际计算机
视觉和模式识别会议,是IEEE一年一度的学术性会议。世界顶级的计算机视觉会议有三个,即:
CVPR、ICCV和ECCV。


perl借取了C、Shell脚本等的特性,最重要的特性是内部集成了正则表达式的功能,已经巨大的
第三方代码库CPAN。所以Perl像C一样强大,想脚本语言一样方便。


LBS(Location Based Service)指基于位置服务,通过电信移动运营商的无线电通讯网络(GSM网
、CDMA网)或外部定位方式(GPS)获取移动终端用户的位置信息,在GIS地理信息系统的平台支持下,
为用户提供相应服务的一种增值业务。

CGLIB是一个开源项目,是一个强大高性能高质量的代码生成类库,开源在运行期扩展Java类实现Java接口,
Hibernate用它来实现PO字节码的动态生成。动态代理必须实现一个或者多个接口,而如果想代理没有实现
接口的继承的类,可以使用CGLIB包。如果一个类实现了接口,那么会用JDK自动带有的动态代理生成代理,
如果没有实现接口,可以引入CGLIB库,然后用lib生成代理。JDK的动态代理只能针对实现了接口的类生成
代理,而不能针对类。CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法。
所以,该类或方法最好不是final。

  

爱华网本文地址 » http://www.aihuau.com/a/25101018/370276.html

更多阅读

photoshop学习教程

photoshop学习教程——简介photoshop是一款强大的图片处理软件,用它强大的功能,可以使我们达成很多目的。今天我就来教大家用ps去水印的方法。photoshop学习教程——工具/原料?psphotoshop学习教程——方法/步骤photoshop学习教程 1

四快学习法的价格问题

四快学习法的价格问题——简介随着现在的四快学习法的逐渐在我国的各个区域市场的畅销,很多的学生家长都开始积极地关注到这样的热门的教辅材料,因为很多人都想要了解到四快学习法的神奇之处,想要知道为什么简单的教辅方法就能够改

五笔打字学习教程:1 初学五笔的疑问解答

五笔打字学习教程:[1]初学五笔的疑问解答——简介一步一步地教会你使用五笔输入法打字,最终成为打字高手。请看我的系列经验。五笔打字学习教程:[1]初学五笔的疑问解答——工具/原料五笔输入法五笔打字学习教程:[1]初学五笔的疑问解答

洛克王国,怎样学习百变液化术?

洛克王国的百变液化术要怎么学习呢?洛克王国,怎样学习百变液化术?——学习方法洛克王国,怎样学习百变液化术? 1、点开任务档案-成长之路-魔法之路-液化术课程选择现在就过去! 洛克王国,怎样学习百变液化术? 2、来到实验工坊点击爱因斯坦对

关于儿童学习跆拳道的几个问题

关于儿童学习跆拳道的几个问题——简介练习跆拳道能提高吃苦耐劳的能力.无论练习哪种武术,都是要下苦功夫的,一个动作为了做的标准,有力量、有速度,可能要练习成百上千次,没有吃苦耐劳的精神是做不到的.强身健体.跆拳道也是一项体育竞技,

声明:《SSH架构学习》为网友笑语解愁苦分享!如侵犯到您的合法权益请联系我们删除