spring,struts2,hibernate(及SSH)集成的好处
展开全部
典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。
表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。
中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。
Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。
Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。
DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。
PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。
一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI 组件很好的耦合。
表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。
中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。
Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。
Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。
DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。
PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。
一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI 组件很好的耦合。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-01-12 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
MVC模式就是model、view、Controller的简称,解析的自己搜百度的百科。
分层一般分为DAO层、Service层、Action层(当然细分的还有他们的*Impl实现),但不是将struts2 , spring,hibernate 硬塞到一个固定层里去。
在DAO层,一般会继承HibernateDAOSupport这个类,如果查看这个类的源代码,就知道其实际就是对数据库的操作,所以可以将hibernate认为是数据库的持久化操作,当然也可以自己扩充HibernateDAOSupport这个类,比如要实行分页就得扩充。HibernateDAOSupport主要使用getHibernate这个东西,而这个东西就是Spring的(理论不知道有没有错,有错的请谅解)。
在Service层就是依赖注入在DAO层的接口,实现一些逻辑,比如登录、数据的CRUD。
在Action层,就是依赖注入Service层的借口,继承ActionSupport这个类,提供了核心控制部分的实现。
每个层都是松耦的,我依赖你的接口,但是不许知道你实现的是什么代码。比如action就得ref到service的,但是它就只ref,service去ref dao的也一样,不需知道代码是什么,只要知道有这个接口,其接口有这个方法就行。
Spring不是具体一个层应用的,它就是个磨合器,很多框架都能通过它与其他框架整合,但是其自身也有一个MVC的框架。
用SSH2的话,一般要配置的文件有web.xml、applicationContext.xml、struts.xml这几个XML配置文件,当然你说用注解的就少点。
分层一般分为DAO层、Service层、Action层(当然细分的还有他们的*Impl实现),但不是将struts2 , spring,hibernate 硬塞到一个固定层里去。
在DAO层,一般会继承HibernateDAOSupport这个类,如果查看这个类的源代码,就知道其实际就是对数据库的操作,所以可以将hibernate认为是数据库的持久化操作,当然也可以自己扩充HibernateDAOSupport这个类,比如要实行分页就得扩充。HibernateDAOSupport主要使用getHibernate这个东西,而这个东西就是Spring的(理论不知道有没有错,有错的请谅解)。
在Service层就是依赖注入在DAO层的接口,实现一些逻辑,比如登录、数据的CRUD。
在Action层,就是依赖注入Service层的借口,继承ActionSupport这个类,提供了核心控制部分的实现。
每个层都是松耦的,我依赖你的接口,但是不许知道你实现的是什么代码。比如action就得ref到service的,但是它就只ref,service去ref dao的也一样,不需知道代码是什么,只要知道有这个接口,其接口有这个方法就行。
Spring不是具体一个层应用的,它就是个磨合器,很多框架都能通过它与其他框架整合,但是其自身也有一个MVC的框架。
用SSH2的话,一般要配置的文件有web.xml、applicationContext.xml、struts.xml这几个XML配置文件,当然你说用注解的就少点。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好处应人而异,应需求而异,只有因地制宜才能寻找到最佳答案!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询