java三层架构:持久层、业务层、表现层的理解
SSH:
Struts(表⽰层)+Spring(业务层)+Hibernate(持久层)
Struts:
Struts是⼀个表⽰层框架,主要作⽤是界⾯展⽰,接收请求,分发请求。
在MVC框架中,Struts属于VC层次,负责界⾯表现,负责MVC关系的分发。
(View:沿⽤JSP,HTTP,Form,Tag,Resourse ;
Controller:ActionServlet,l,Action)
Hibernate:Hibernate是⼀个持久层框架,它只负责与关系数据库的操作。
Spring:Spring是⼀个业务层框架,是⼀个整合的框架,能够很好地黏合表⽰层与持久层。
mvc和三层架构的理解我们知道,传统的Java Web应⽤程序是采⽤JSP+Servlet+Javabean来实现的,这种模式实现了最基本的
MVC分层,使的程序结构分为⼏层,有负责前台展⽰的 JSP、负责流程逻辑控制的Servlet以及负责数据封装的Javabean。但是这种结构仍然存在问题:如JSP页⾯中需要使⽤符号嵌⼊很多的 Java代码,造成页⾯结构混乱,Servlet和Javabean负责了⼤量的跳转和运算⼯作,耦合紧密,程序复⽤度低等等。
Struts:
为了解决这些问题,出现了Struts框架,它是⼀个完美的MVC实现,它有⼀个中央控制类(⼀个 Servlet),针对不同的业务,我们需要⼀个Action类负责页⾯跳转和后台逻辑运算,⼀个或⼏个JSP页⾯负责数据的输⼊和输出显⽰,还有⼀个 Form类负责传递Action和JSP中间的数据。JSP中可以使⽤Struts框架提供的⼀组标签,就像使⽤HTML标签⼀样简单,但是可以完成⾮常复杂的逻辑。从此JSP页⾯中不需要出现⼀⾏包围的Java代码了。可是所有的运算逻辑都放在Struts的Action⾥将使得 Action类复⽤度低和逻辑混乱,所以通常⼈们会把整个Web应⽤程序分为三层,Struts负责显⽰层,它调⽤业务层完成运算逻辑,业务层再调⽤持久层完成数据库的读写。使⽤JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使⽤复杂的SQL语句进⾏读写、关闭连接,获得的数据⼜需要转换或封装后往外传,这是⼀个⾮常烦琐的过程。
Hibernate
这时出现了 Hibernate框架,它需要你创建⼀系列的持久化类,每个类的属性都可以简单的看做和⼀张
数据库表的属性⼀⼀对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不⽤再关注数据库表。我们不⽤再去⼀⾏⾏的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正⾯向对象,⽽不是⾯向混乱的代码。我的感受是,使⽤Hibernate⽐JDBC⽅式减少了80%的编程量。
现在我们有三个层了,可是每层之间的调⽤是怎样的呢?⽐如显⽰层的Struts需要调⽤⼀个业务类,就需要new⼀个业务类出来,然后使⽤;业务层需要调⽤持久层的类,也需要new⼀个持久层类出来⽤。通过这种new的⽅式互相调⽤就是软件开发中最糟糕设计的体现。简单的说,就是调⽤者依赖被调⽤者,它们之间形成了强耦合,如果我想在其他地⽅复⽤某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调⽤,复⽤度极低。如果⼀个类做了修改,则依赖它的很多类都会受到牵连。
为此,出现Spring框架。
Spring Spring的作⽤就是完全解耦类之间的依赖关系,⼀个类如果要依赖什么,那就是⼀个接⼝。⾄于如何实现这个接⼝,这都不重要了。只要拿到⼀个实现了这个接⼝的类,就可以轻松的通过xml配置⽂件把实现类注射到调⽤接⼝的那个类⾥。所有类之间的这种依赖关系就完全通过配置⽂件的⽅式替代了。所以 Spring框架最核⼼的就是所谓的依赖注射和控制反转。
现在的结构是,Struts负责显⽰层,Hibernate负责持久层,Spring负责中间的业务层,这个结构是⽬前国内最流⾏的Java Web应⽤程序架构了。
另外,由于Spring使⽤的依赖注射以及AOP(⾯向⽅⾯编程),所以它的这种内部模式⾮常优秀,以⾄于Spring⾃⼰也实现了⼀个使⽤依赖注射的MVC框架,叫做Spring MVC,同时为了很好的处理事物,Spring集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,使⽤更加⽅便和强⼤。 Struts框架是2000年就开始起步了,到⽬前已经发展了5年,技术相当成熟,⽬前全球Java开发中Struts框架是显⽰层技术中当之⽆愧的王者。它拥有⼤量的⽤户和很好的开发团队。这也是国内⼤部分Java软件公司对新进员⼯的基本要求。其他Java这个名词似乎注定和开源紧密联系在⼀起了,在Java界,每天都有⼤量的开源技术出现,由于是开放源代码的,技术中存在的问题和不⾜很快就会被⼈发现,开源软件提供者会很快的修正或扩展这些技术,因此版本更新很快,⼏个星期或者⼏天就有⼀个新版本出来。当我们在技术线路中选择了Java,也就选择了你必须持续学习,经常关注最新的技术,了解它们,看是否适合你的需要,然后学习使⽤它们。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论