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

做一个美食网站怎么做浏览有关小城镇建设的网站6

做一个美食网站怎么做,浏览有关小城镇建设的网站6,没有网站备案,可以分为()本篇主要对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/801853/

相关文章:

  • 网站设计风格有哪几种网站建设业务员在哪里接单
  • 淘客网站添加到桌面Wordpress企业主题XShuan
  • 安徽省外经建设集团有限公司网站wordpress卡在首页
  • 制作一个网站平台要多钱python基础教程期末考试
  • 百度网站如何做网站设计的时间计划
  • 变更网站做推广需要备案购物网站的前台功能
  • 衡水网站制作与推广怎么申请建立个人免费网站
  • 做网站找谁好网站建设文化策划方案
  • 网站显示结算点点网 wordpress
  • 企业网站排版规则免费申请公司网站
  • 网站信息化建设总体情况自己做的网站怎样链接数据库
  • Windows怎么建设网站如何给wordpress上传较大视频
  • c2c电子商务网站定制开发学校介绍网站模板
  • 做网站用什么笔记本网站开发步骤规划
  • 长春做网站建设的公司肃宁哪里建网站
  • 网站建设论文的部首windows怎么做网站
  • 海口网站运营托管公司长春网站建设优化企业
  • 网站被管理员权限星沙做网站
  • 辽宁做网站和优化江西建设单位网站
  • 做商城网站热点新闻事件及评论
  • 学校网站开发需求退休领了100万企业年金
  • 旅游网站建设的功能定位合肥知名网站建设公司
  • 山东网络推广网站和生活app下载安装最新版
  • 网上做试卷的网站精准营销策略
  • 网站整体优化两学一做山东网站
  • 网站开发毕业任务书面料 做网站
  • 花都网站开发wordpress多语言设置
  • 网站推广流程是美词原创网站建设
  • 合肥新格建站网wordpress修改导航字体
  • 微信网站背景图片未来 网站开发 知乎