当前位置: 首页 > news >正文

湖州集团网站建设win7 iis搭建网站教程

湖州集团网站建设,win7 iis搭建网站教程,新闻软文发布平台,淘宝客网站用什么软件做本篇主要对ControllerServiceDAO三层结构以及控制反转(IOC)与DI(依赖注入)进行总结。 目录 一、三层架构: Controller/Service/DAO简介: 二、控制反转(IOC)-依赖注入(DI): 概念介绍: DOC与…
    本篇主要对Controller+Service+DAO三层结构以及控制反转(IOC)与DI(依赖注入)进行总结。

目录

一、三层架构: 

Controller/Service/DAO简介:

二、控制反转(IOC)-依赖注入(DI):

概念介绍:

 DOC与DI的引入:   

使用注解来实现IOC与DI:


一、三层架构: 

前言:   

    如果将代码都写到一个类中,包括数据访问(解析xml文件)逻辑处理,接收请求,响应数据等功能;这种方式会导致代码非常臃肿,复用性差,并且难以维护,实际开发中,尽量保持单一职责原则,所以要分开进行操作,由此引出三层架构:Controller+Service+DAO;

Controller/Service/DAO简介:

  • Controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据。
  • Service:业务逻辑层,处理具体的业务逻辑。
  • DAO:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括对数据的增删改查等。

 整体的流程如下:

    首先客户端发送请求到Controller层,Controller接收请求后,调用Service层进行逻辑处理,Service层需要获取数据所以调用DAO层获取数据,DAO返回数据后Service层进行逻辑处理,返回处理后的数据到Controller层,Controller层响应数据到前端界面;这就是三层架构;

二、控制反转(IOC)-依赖注入(DI):

概念介绍:

先对下面提到的几个概念进行简单的介绍:

  • 内聚:软件中各个功能模块内部的功能联系。
  • 耦合:衡量软件中各个层或模块之间的依赖、关联程度。
  • 软件设计原则:高内聚低耦合。
  • 控制反转:Inversion Of Control,简称IOC,对象的创建控制权由程序自身转移到外部容器,这种思想就叫做控制反转。
  • 依赖注入:Dependency Injection,简称DI,容器为应用程序提供运行时,所依赖的资源称之为依赖注入。
  • Bean对象:IOC容器中创建、管理的对象称之为Bean对象。

 DOC与DI的引入:   

    前面讲了三层架构,如果按照这样的流程来接收前端发送的请求并处理请求,就需要在各个层中定义相应的对象,比如说Controller层调用Service层的方法来获取数据,此时Controller层需要new一个Service对象,所以他们两个耦合程度比较高,如果Service换了名字,Controller层也要改变,所以这种方式有很大的缺陷,同样Service和DAO层也一样的情况;

    所谓高内聚,例如service层只对客户这种类型数据进行处理,不对其他类型进行处理;实际开发中软件设计原则是高内聚低耦合,这样当Service代码变化,不需要改变Controller层的代码;

    所以为了解决这种缺陷,实现解耦操作,在各个层中不用通过new来创建类的对象,可以采用一个容器,这个容器中存放对应的对象,如果Service层中叫做ServiceA那么此时容器中存放一个ServiceA类型的对象,然后Controller层去容器中寻找这个对象然后从容器中拿到这个对象然后调用相应的方法。如果Service层的名称改为ServiceB,此时就在容器中存放一个ServiceB的对象,然后Controller层去寻找即可,无需更改Controller层的代码。那么如何实现这个容器?——通过IOC与DI来实现。

使用注解来实现IOC与DI:

控制反转(IOC):首先一般用下面三种注解实现控制反转,如果有一个不属于那三类,可以用@Component。利用注解来修饰类,将这个类的对象控制权交给IOC容器管理。

依赖注入(DI):如果想在Controller层中使用Service层的对象,需要在创建的对象前面加上@Autowired注解;

演示如下:

Controller层:通过@Autowired注解实现依赖注入,获取IOC容器中Service层的对象:

@RestController
public class DeptController {@Autowiredprivate DeptService deptService;

Service层:通过@Service注解实现将Service类的对象创建与管理交给IOC容器,这样Controller层就可以从IOC容器中获取此类对象。通过@Autowired注解实现依赖注入,获取IOC容器中DAO层的对象:

@Service
public class DeptLogServiceImpl implements DeptLogService {@Autowiredprivate DeptLogMapper deptLogMapper;

DAO层:注意此处一般使用@Mapper注解,这个注解是mabitas提供的(后续会讲到),上面的@Controller注解等是springboot提供的,功能本质上一致。通过加入@Mapper注解将DAO层的对象创建与管理交给IOC容器,这样Service层就可以从IOC容器中获取此类对象。

@Mapper
public interface DeptLogMapper {

通过以上注解即可实现控制反转与依赖注入。

http://www.yayakq.cn/news/42083/

相关文章:

  • 建行的官方网站吗高校网站建设招标公告
  • 嘉盛集团官方网站长业建设网站
  • 中通建设工程管理公司网站在百度做网站怎么做
  • 包头教育平台网站建设丹东 建设集团 招聘信息网站
  • 重生做皇帝小说网站wordpress动漫模板
  • 浙江交工宏途交通建设有限公司网站6有个网站叫设计什么
  • 药企网站怎么做建立网站链接结构的基本方式有哪些
  • 山东住房和城乡建设局网站重启服务器 wordpress
  • 0元购怎么在网站做刷百度指数
  • 怎样选择网站服务器用wordpress怎么赚钱
  • 90后做受网站博客网站排名大全
  • 如何做好网站首页国外做任务网站有哪些方面
  • 网站优化推广外包网站建设大约多少钱
  • 理财网站开发文档网站建设基础服务
  • 如何构建网站平台html网站怎么做几个网页
  • 电子 网站模板网站建设设计咨询
  • 如何提高网站文章收录网站备案 座机号码
  • 徐州网站建设 和信开发一个app的费用是多少
  • 阜新小程序 阜新网站建设开发python语言入门
  • 做推广的网站有哪些局域网站怎么做
  • 网站是什么样的公司注册地址跟办公地址不一致
  • 郑州巩义网站建设做视频小网站犯法吗
  • 山东企业站点seo济南做网站互联网公司排名
  • 购物网站建设课程设计报告app优化网站建设
  • 池州城乡住房建设厅网站网站建设seo优化的好处
  • 做网站卖什么条件某网站建设方案
  • 如何在建设部网站查询获奖情况wamp wordpress 安装教程
  • 网站建设宁波wordpress功能修改
  • 站长工具综合查询ipwordpress模版数
  • 怎么做网站投票选举谷歌网站地图提交