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

dedecms 做网站东莞网络优化哪家好

dedecms 做网站,东莞网络优化哪家好,做网站哪个语言快,绵阳汽车网站制作本篇主要对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.tj-hxxt.cn/news/112475.html

相关文章:

  • 网站首页做几个关键词亚马逊关键词优化怎么做
  • 做博客的网站绍兴seo排名
  • 网站的信息架构seo关键词优化案例
  • wordpress 最好主题优化标题关键词技巧
  • 赌网站怎么做技术培训班
  • seo关于网站搜索山西seo基础教程
  • wordpress个人中心插件上海seo
  • 上海企业建站北京广告公司
  • 如何建网站费用多少营销100个引流方案
  • 网站做的不好使微博推广方式
  • 集团网站建设管理制度泉州百度推广排名优化
  • 做兼职网站哪个靠谱18款免费软件app下载
  • mt4外汇网站建设windows优化大师怎么彻底删除
  • 做网站的需要什么资质证明网站运营管理
  • 武汉疫情最新消息网站seo快速
  • 怎么自己做网站框架百度营销app
  • 怎样在谷歌上建设网站新榜数据平台
  • 家政的网站怎么做企业宣传片
  • 网站导航栏高度百度app下载安装官方免费下载
  • 桂林建网站的公司河北网络科技有限公司
  • 开锁都在什么网站做产品营销策略
  • 计算机应用技术php网站开发网络营销师主要做什么
  • 用python做网站的多吗百度推广代理怎么加盟
  • 英文建站系统东莞seo排名公司
  • 网站建设制作公司哪家全国十大教育机构
  • 哪个公司做外贸网站好网站可以自己做吗
  • 公司网站百度搜索的描述怎么做东莞市网络营销公司
  • 包头网站建设平台广和武汉做网页推广公司
  • 哪家微网站建设青岛网站快速排名提升
  • 如何建免费的企业网站seo优化厂商