最新Struts210+Spring25+Hibernate32框架文档格式.docx
- 文档编号:14037276
- 上传时间:2022-10-17
- 格式:DOCX
- 页数:50
- 大小:259.93KB
最新Struts210+Spring25+Hibernate32框架文档格式.docx
《最新Struts210+Spring25+Hibernate32框架文档格式.docx》由会员分享,可在线阅读,更多相关《最新Struts210+Spring25+Hibernate32框架文档格式.docx(50页珍藏版)》请在冰豆网上搜索。
中间层是这个系统的关键所在,而Spring的作用贯穿了整个中间层,将web层、Service层、DAO、PO无缝整合。
系统架构图
系统业务流程图
应用程序的分层,多数web应用程序都能至少分为4个各负其责层次,这些层次依次为:
表现层、业务层、领域模型层、持久层,每个层次在应用程序中都有明确的责任,不应该和其它层次的职责发生混淆。
每个层次功能是彼此独立的,但是都应提供通讯接口,以便其它层次使用本层次的功能。
Struts负责的:
·
为用户管理请求和响应;
提供一个控制器代理调用业务逻辑和其它上层处理;
处理从其它层掷出给一个StrutsAction的异常;
为显示提供一个模型;
执行用户接口验证。
业务层
在一个典型的web应用程序的中间的组件是业务层或服务层。
从编码的视角来看,这个服务层是最容易被忽视的一层。
不难在用户接口层或者持久层里找到散布在其中的这种类型的代码。
这不是正确的地方,因为这导致了应用程序的紧耦合,这样一来,随着时间推移代码将很难维护。
在这个领域两个最流行的框架是Spring和PicoContainer,它们叫作微容器,可以不费力不费神的把你的对象连在一起。
所有这些框架都工作在一个简单的叫作“依赖注入”(也通称“控制反转”)的概念上。
业务层应该负责下面这些事情:
处理应用程序的业务逻辑和业务验证;
管理事务;
预留和其它层交互的接口;
管理业务层对象之间的依赖;
增加在表现层和持久层之间的灵活性,使它们互不直接通讯;
从表现层中提供一个上下文给业务层获得业务服务;
管理从业务逻辑到持久层的实现。
领域模型层
基于web的应用程序,需要一组能在不同的层之间移动的对象。
领域对象层由那些代表现实世界中的业务对象的对象们组成。
这个层让开发者停止建立和维护不必要的数据传输对象(或者叫作DTOs),来匹配他们的领域对象。
例如,Hibernate允许你把数据库信息读进领域对象的一个对象图,这样可以在连接断开的情况下把这些数据显示到UI层。
那些对象也能被更新和送回到持久层并在数据库里更新。
而且,不必把对象转化成DTOs,因为DTOs在不同的应用层间移动,可能在转换中丢失。
这个模型使得Java开发者自然地以一种面向对象的风格和对象打交道,没有附加的编码。
持久层
在典型web应用的另一端是持久层。
查询相关的信息成为对象。
保存、更新、删除储存在数据库中的信息。
其中模型层、持久化层、数据库层之间的关系是上层依赖下层,而下层对上一层依赖很少。
模型层实际上又分为数据访问层(DAO)和数据管理层(Manager)。
系统使用Hibernate来实现持久化层,在这一层使用DAO模式。
DAO模式是J2EE核心模式中的一种,其主要行为就是在业务核心方法和具体数据源之间在再加一层,用这一层来连接业务方法和数据源,从而实现解耦,使得系统非常容易在各个数据库之间移植。
在DAO模式种,每一个持久化类都对应一个DAO,而一个DAO包括接口和实现。
接口说明持久化类的操作方法,如CRUD操作,在接口的实现中则是具体使用hibernateAPI来实现接口。
对与上层来说,只需要调用接口中的方法即可。
DAO模式一般和工厂方法联合使用的。
通过一个工厂方法来产生所有DAO接口。
DAO是DataAccessObject数据访问接口,位于业务层和数据层之间。
DAO的主要功能:
(1)DAO用来封装DataSource的,比如Connectionconn=DAOFactory.createConnection().
这样就可以把Drive.URL.username,password这一些放在DAO中。
以后要改变数据库的类型,比如把MSSQL换为Oracle的话,只需更该DAOFactory里面的getConnection()的Driver.URL就行。
(2)DAO也是把对数据库的操作(比如最为基本的CRUD操作)全部封装在里面。
要插入一个新的用户,那么在DAO中只需提供一个insertUser(Useruser)这个方法就可以了。
具体操作在DAO中实现。
一般DAO是与AbstrFactory模式一起使用的。
Factory用来建立数据库和定位具体的DAO(比如是UserDao还是CustomerDao)。
一般将getConnection设置为static,也可以把HibernateSessionFactory这个公共类放在AbstractFactory类中去。
PublicclassDAOFactory{
PrivatestaticfinalSessionFactorysessionFactory;
StaticSessioncurrentSession()
PublicUserDaogetUserDAO(){
ReturnnewUserDaoImpl(session);
}
PublicotherDaogetOtherDAO(){
PublicinterfaceUserDao{
PublicinsertUser(FormBean);
PublicupdateUser(FormBean);
//然后实现DAO接口
PublicclassUserDaoImplimplementsUserDao{
PrivateSessionsession;
PublicUserDaoImpl(Sessionsession){
This.session=session;
}
PublicinsertUser(FormBean){
//
Session.save(UserPO);
ReturnFormBean;
PublicFormBeanupdateUser(FormBean){
Session.update(UserPO);
//
ReturnFormBean;
最后定义PO
PublicclassuserPO{
Stringfirstname,lastname,password…
开发工具:
myeclipse6.5
Web服务器:
Tomcat6.0
数据库服务器SQLServer2000
2.Struts2.0框架
Struts2框架可以分为3个部分,即核心控制器FilterDispatcher、业务控制器action和用户实现的企业业务逻辑组件。
核心控制器FilterDispatcher是struts2框架的基础,包含框架内部的控制流程和处理机制。
业务控制器action和企业业务逻辑组件是要用户自己实现的。
业务逻辑控制器action的execute()返回一个String类型的值,Struts2提供一个ActionSupport工具类,该类实现了action接口和validate()方法,一般开发人员编写action可以直接继承ActionSupport类。
编写Action类之后,还要在xml文件中配置action,一个action包括一下几个方面:
该action的name,即用户请求所指向的URL
Action所对应的class名称,对应于action类的位置
指定result逻辑名称和实际资源的定位
注意:
Action中,不实现任何的业务逻辑,只是负责组织调度业务逻辑组件。
Struts2框架是基于MVC模式开发的,提供一个核心的控制器,用于对所有的请求进行统一的处理。
这个控制器的名字就是FilterDispatcher的servlet过滤器来充当。
需要在web.xml文件中配置FilterDispatcher,制定要映射到FilterDispatcher的URL样式,匹配这个URL请求,都将被web容器交由FilterDispatcher进行处理。
Struts2使用action代理,Action代理可以根据系统配置,加载一系列拦截器,由拦截器将HttpServletRequest参数解析出来,再传入action。
同样action处理结果也通过拦截器传入HttpServletResponse,然后由HttpServletRequest传给用户,这个过程就是典型的AOP。
Action就是一段只有特定的URL被请求时才会执行的代码。
当一个action创建完成之后,需要为其配置一个URL,只有这样FilterDispatcher才知道是哪个URL对应哪个action,当截获访问该URL的请求时,FilterDispatcher就知道调用对应的action对请求进行处理。
FilterDispatcher根据请求URL不同,来执行不同的action,action执行的结果通常都对应一个要呈现给用户的result,这个result就是HTML页面,也可以是一个PDF或是Excel电子表,action与其对应的result是在struts.xml的配置文件中进行配置的。
业务控制器Action,是由用户自己开发的,Action类实际就是一个简单的Java类,与ServletAPI完全分离。
Action方法一般都有一个execute()方法,同时也可以定义其他的业务控制,
execute()方法返回一个String类型的值。
Struts2提供一个ActionSupport工具类,该类实现Action接口和Validate()方法。
一般开发人员编写action类时,可以直接继承ActionSupport类。
编写完Action类之后,必须在配置文件中培植action,一个action的配置应该包含以下几个方面:
action所对应的class元素,对应action类的位置。
指定result逻辑名称和实际的资源的定位。
Action是业务控制器,因此应避免将业务逻辑处理放在其中,减少action与业务逻辑模块的耦合程度。
业务模型组件,实现业务逻辑的模块,可以是EJB、POJO、或者Javabean。
Struts2框架的目的就是使用action来调用业务逻辑模块。
2.1Struts2配置文件
Struts2核心的配置文件是缺省的struts.xml,这个文件也是struts2框架主动加载的文件,在这个文件中可以定义自己的一些action、interceptor、package等。
Package通常继承struts-default包。
struts文件可以放入jar中,并自动插入应用程序,这样每个模块可以包含自己的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 Struts210 Spring25 Hibernate32 框架