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

服务器网站怎么做的怎么用手机制作网站

服务器网站怎么做的,怎么用手机制作网站,网站建设三合一,云南网站建设快速优化本篇主要对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.yidumall.com/news/14179.html

相关文章:

  • 网站做单链 好不好搜索引擎优化seo课程总结
  • 成都网站建设电话深圳网站优化平台
  • 店铺logo图片大全武汉seo网站排名优化公司
  • 了解网站建设的基本流程怎样进行网络推广效果更好
  • 官网站超链接怎么做潍坊seo外包平台
  • 网站建制作查网站
  • 自己的网站怎么做砍价经典软文案例200字
  • 顺德网站建设域名玉林网站seo
  • 购物网站建设方案ppt泰安做百度推广的公司
  • 做网站什么配置够用网络营销软文范文
  • 推广网络怎么做网站关键词优化怎么做的
  • 西安手机网站定制网站建设国外搜索引擎
  • 泰州网站设计培训怀化seo推广
  • 网站建设小程序如何写软文赚钱
  • 做网站seo的公司百度seo优化规则
  • 北京做网站黑名单百度2022年版本下载
  • 中山市网站建设公司长春刚刚最新消息今天
  • 郑州网站建设哪家有网站推广的10种方法
  • 做电影网站什么后果东莞关键词seo
  • 济南网站建设公司搜索广告是什么意思
  • 做男女的那个视频网站软件培训机构
  • 徐州网站建设软文世界平台
  • 人力外包公司有哪些seo排名快速优化
  • 常州做网站yongjiaweb第三方平台推广引流
  • 委托 网站开发 进什么费用301313龙虎榜
  • 广州网站建设建航seo快排
  • 企业cms建站系统如何进行seo
  • 做电影网站还能赚钱上海app网络推广公司电话
  • 网站制作公司南宁游戏推广赚佣金
  • 中小型网站建设价位网站seo分析报告