Java表现层、业务层、持久层

收藏博主

https://blog.csdn.net/Song_JiangTao/article/details/80087680

java web应用:

·M-Model,模型,一般表现为提交的表单内容,请求参数等,是服务器与客户端交流的数据载体;

·V-View,表现层,用来展示客户端请求的结果,服务器返回的数据经过渲染展示给用户;

·C-Controller,控制器,是客户端与服务器的中间连接枢纽,它负责将客户端发来的请求分配到指定的方法,执行相应的业务逻辑,然后将服务器返回的数据分配到指定的view,view好经过渲染展示给用户。

流行的组合:

·SSH:

  ·Struts(表示层)+Spring(业务层)+Hibernate(持久层)

·SSM:

  ·SpringMVC(表示层)+Spring(业务层)+Mybatis(持久层)

业务层也是承接层,用来处理业务逻辑,通常使用数据库中的事务来进行,按照web层的要求来对数据层进行增删改查。

·service是业务层,是使用一个或多个模型执行操作的方法:

  ·封装通用的业务逻辑、操作。如一些数据的校验,可以通用处理;

  ·与数据层交互;

  ·其他请求:如远程服务获取数据,如第三方api等。

持久层数据大概可以分为三个部分:DAO文件系统其他应用数据

·DAO由一下几个部分组成:

  ·DatabaseConnection:专门负责数据库的打开与关闭操作的类;

  ·VO:主要由属性、setter、getter、方法组成,VO类中的属性与表中的字段相对应,每一个VO类的对象都表示表中的每一条记录;

  ·DAO:主要定义操作的接口,定义一系列数据库的原子性操作,如增加、修改、删除和查询;

  ·impl:DAO接口的真实实现类,完成具体的数据库操作,但是不负责数据的打开和关闭;

  ·Proxy:代理实现类,主要完成数据库的打开和关闭操作,并且调用真实实现对象的操作;

  ·Factory:工厂类,通过工厂类取得一个DAO的实例化对象。

框架 缺点
传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使得程序结构分为几层,有负责前台展示的 JSP、负责流程逻辑控制的Servlet以及负责数据封装的Javabean JSP页面中需要使用符号嵌入很多的 Java代码,造成页面结构混乱,Servlet和Javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低等等。
接下来
出现了Struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个 Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个 Form类负责传递Action和JSP中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑 使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。
接下来
出现了 Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作时,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象, 而不是面向混乱的代码 现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层Struts需要调用一个业务类,就需要new一个业务类出来,然后使用;业务层需要调 用持久层的类,也需要new一个持久层类出来用。通过这种new的方式互相调用就是软件开发中最糟糕设计的体现
接下来
出现Spring框架。Spring Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件实现类注射调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以 Spring框架最核心的就是所谓的依赖注射控制反转

但是随着时间的发展,历史的进步,

Struts,“我个人”认为有了更好的替代,SpringMVC,

hibernate替换为Mybatis。

这个框架的变化,只是更好的适合了当前。中心思想还是没有变的。

猜你喜欢

转载自www.cnblogs.com/arrows/p/10528327.html