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

html网站开发工具有哪些google广告

html网站开发工具有哪些,google广告,wordpress微信验证码,服务网站设计案例目录 一、IOC&DI入门 二、三层架构 数据库访问层 业务逻辑层 控制层 一、IOC&DI入门 在软件开发中,IOC(Inversion of Control)和DI(Dependency Injection)是密切相关的概念。 IOC(控制反转&a…

目录

一、IOC&DI入门

二、三层架构 

数据库访问层

业务逻辑层

控制层


一、IOC&DI入门

在软件开发中,IOC(Inversion of Control)和DI(Dependency Injection)是密切相关的概念。

  1. IOC(控制反转): IOC是一种设计原则,通过它可以实现程序的松耦合。传统的控制流程是由程序员直接编写代码控制对象的创建和调用关系,而控制反转则是将这种控制权交给一个容器(例如,IOC容器)来管理。换句话说,控制反转就是控制权的转移,由程序员转移到容器中,容器负责创建对象并管理对象之间的依赖关系。

  2. DI(依赖注入): DI是实现IOC的一种具体方式。它是指在对象创建的过程中,通过将对象所依赖的其他对象(即依赖关系)注入到对象中,从而实现对象之间的解耦。这样,对象不再负责自己的依赖关系,而是由外部容器在创建对象时提供所需的依赖。

    依赖注入可以通过构造函数注入、属性注入或方法注入等方式来实现。其中最常见的是构造函数注入,在这种方式下,对象在创建时必须提供其所需的依赖,否则无法正确实例化对象。

综合起来说,IOC是一种设计原则,DI是实现IOC的具体技术手段。通过DI,我们可以在应用程序中实现控制反转,让对象之间的依赖关系由容器来管理,从而提高代码的可维护性、可测试性和灵活性。

要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一:

注解说明位置
@Controller@Component的衍生注解标注在控制器类上
@Service@Component的衍生注解标注在业务类上
@Repository@Component的衍生注解标注在数据访问类上(由于与mybatis整合,用的少)
@Component声明bean的基础注解不属于以上三类时,用此注解

@Autowired注解,默认是按照类型进行自动装配的(去IOC容器中找某个类型的对象,然后完成注入操作)

入门程序举例:在EmpController运行的时候,就要到IOC容器当中去查找EmpService这个类型的对象,而我们的IOC容器中刚好有一个EmpService这个类型的对象,所以就找到了这个类型的对象完成注入操作。

二、三层架构 

那其实我们上述案例的处理逻辑呢,从组成上看可以分为三个部分:

  • 数据访问:负责业务数据的维护操作,包括增、删、改、查等操作。

  • 逻辑处理:负责业务逻辑处理的代码。

  • 请求处理、响应数据:负责,接收页面的请求,给页面响应数据。

按照上述的三个组成部分,在我们项目开发中呢,可以将代码分为三层:

  • Controller:控制层。接收前端发送的请求,对请求进行处理,并响应数据。

  • Service:业务逻辑层。处理具体的业务逻辑。

  • Dao:数据访问层(Data Access Object),也称为持久层。负责数据访问操作,包括数据的增、删、改、查。

基于三层架构的程序执行流程:  

  • 前端发起的请求,由Controller层接收(Controller响应数据给前端)

  • Controller层调用Service层来进行逻辑处理(Service层处理完后,把处理结果返回给Controller层)

  • Serivce层调用Dao层(逻辑处理过程中需要用到的一些数据要从Dao层获取)

  • Dao层操作文件中的数据(Dao拿到的数据会返回给Service层)

 

代码实现:

数据库访问层

public interface EmpDao {public List<Emp>  listEmp();}
@Repository  // 将当前对象交给IOC容器管理,成为IOC容器的bean
public class EmpDaoA implements EmpDao {@Overridepublic List<Emp> listEmp() {// 1、加载并解析xml文件
//        String file = this.getClass().getClassLoader().getResource("emp.xml").getFile();String file = "XXXXXXXXXXXXx";System.out.println(file); // 输出路径List<Emp> empList = XmlParserUtils.parse(file, Emp.class);return empList;}}

业务逻辑层

// 业务逻辑层
public interface EmpService {public List<Emp> listEmp();}

@Primary // 使用@Primary注解:当存在多个相同类型的Bean注入时,加上@Primary注解,来确定默认的实现。
@Service
public class EmpServiceA implements EmpService {// 创建数据库访问层对象@Autowiredprivate EmpDao empDao;@Overridepublic List<Emp> listEmp() {List<Emp> empList = empDao.listEmp();// 2、对数据转化处理empList.stream().forEach(emp -> {// 性别String gender = emp.getGender();if ("1".equals("gender")){emp.setGender("男");}else{emp.setGender("女");}String job = emp.getJob();if("1".equals(job)){emp.setJob("讲师");}else if("2".equals(job)){emp.setJob("班主任");}else{emp.setJob("就业指导");}});return empList;}}

控制层


@RestController
public class EmpController {// 创建业务对象// 运行时,从IOC容器中获取该类型对象,赋值给该变量@Autowiredprivate EmpService  empService;@RequestMapping("listEmp")public Result list(){List<Emp> empList = empService.listEmp();// 3、响应数据return Result.success(empList);}}

三层架构的优点:

  1. 复用性强

  2. 便于维护

  3. 利用扩展

  4. 解决了耦合问题

首先需要了解软件开发涉及到的两个概念:内聚和耦合。

  • 内聚:软件中各个功能模块内部的功能联系。

  • 耦合:衡量软件中各个层/模块之间的依赖、关联的程度。

软件设计原则:高内聚低耦合。

高内聚指的是:一个模块中各个元素之间的联系的紧密程度,如果各个元素(语句、程序段)之间的联系程度越高,则内聚性越高,即 "高内聚"。

低耦合指的是:软件中各个层、模块之间的依赖关联程序越低越好。


文章转载自:
http://dinncoshadoof.bpmz.cn
http://dinncohabdalah.bpmz.cn
http://dinncorushlight.bpmz.cn
http://dinncoindestructibility.bpmz.cn
http://dinncohaggadist.bpmz.cn
http://dinncosurrenderee.bpmz.cn
http://dinncoallochthon.bpmz.cn
http://dinncoromans.bpmz.cn
http://dinncositrep.bpmz.cn
http://dinncoaire.bpmz.cn
http://dinncoexhaustively.bpmz.cn
http://dinncoisocracy.bpmz.cn
http://dinncopereiopod.bpmz.cn
http://dinncosurcease.bpmz.cn
http://dinncoassai.bpmz.cn
http://dinncochargeable.bpmz.cn
http://dinncodon.bpmz.cn
http://dinncodorsolateral.bpmz.cn
http://dinncoqualifiable.bpmz.cn
http://dinncogarioa.bpmz.cn
http://dinncokatrine.bpmz.cn
http://dinnconatriuresis.bpmz.cn
http://dinncomystical.bpmz.cn
http://dinncoeastabout.bpmz.cn
http://dinncoindifferency.bpmz.cn
http://dinncoweddell.bpmz.cn
http://dinncocranioscopy.bpmz.cn
http://dinncoatebrin.bpmz.cn
http://dinncoredbone.bpmz.cn
http://dinncodigestible.bpmz.cn
http://dinncooolite.bpmz.cn
http://dinncoswagger.bpmz.cn
http://dinncobullring.bpmz.cn
http://dinncomilliard.bpmz.cn
http://dinncononlogical.bpmz.cn
http://dinncoentryway.bpmz.cn
http://dinncopurity.bpmz.cn
http://dinncosuperscribe.bpmz.cn
http://dinncostrabismic.bpmz.cn
http://dinncobenison.bpmz.cn
http://dinncowdc.bpmz.cn
http://dinncovirilescence.bpmz.cn
http://dinncocaplin.bpmz.cn
http://dinncouno.bpmz.cn
http://dinncospermatorrhoea.bpmz.cn
http://dinncomarketman.bpmz.cn
http://dinncobrinell.bpmz.cn
http://dinncoetiolate.bpmz.cn
http://dinncopatrilocal.bpmz.cn
http://dinncosnowplow.bpmz.cn
http://dinncocallipers.bpmz.cn
http://dinncotraverser.bpmz.cn
http://dinncoretroactivity.bpmz.cn
http://dinncocyclohexanone.bpmz.cn
http://dinncodareful.bpmz.cn
http://dinncolomentum.bpmz.cn
http://dinncoostler.bpmz.cn
http://dinncomegalosaurus.bpmz.cn
http://dinncoazeotropic.bpmz.cn
http://dinncochechako.bpmz.cn
http://dinncoschematiye.bpmz.cn
http://dinncoethambutol.bpmz.cn
http://dinncouriel.bpmz.cn
http://dinncoformatting.bpmz.cn
http://dinncosheeplike.bpmz.cn
http://dinncocheesecake.bpmz.cn
http://dinncopsychoanalyst.bpmz.cn
http://dinncostethoscope.bpmz.cn
http://dinncoindices.bpmz.cn
http://dinncodynamicfocus.bpmz.cn
http://dinncoacutely.bpmz.cn
http://dinncovide.bpmz.cn
http://dinncogoonery.bpmz.cn
http://dinncograsp.bpmz.cn
http://dinncoentozoan.bpmz.cn
http://dinncogottland.bpmz.cn
http://dinncochoreoid.bpmz.cn
http://dinncobatt.bpmz.cn
http://dinncostackware.bpmz.cn
http://dinncoaccouter.bpmz.cn
http://dinncocompactly.bpmz.cn
http://dinncoesemplastic.bpmz.cn
http://dinncobrunt.bpmz.cn
http://dinncolandwind.bpmz.cn
http://dinncoideology.bpmz.cn
http://dinncosoapboxer.bpmz.cn
http://dinncomrbm.bpmz.cn
http://dinncoterrific.bpmz.cn
http://dinncohosier.bpmz.cn
http://dinncoflick.bpmz.cn
http://dinncotrifle.bpmz.cn
http://dinnconabe.bpmz.cn
http://dinncoanorexia.bpmz.cn
http://dinncogullery.bpmz.cn
http://dinncocerebrovascular.bpmz.cn
http://dinncozedzap.bpmz.cn
http://dinncoabreaction.bpmz.cn
http://dinncoillusion.bpmz.cn
http://dinncomayhem.bpmz.cn
http://dinncoinitiator.bpmz.cn
http://www.dinnco.com/news/143108.html

相关文章:

  • 莆田网站建设方法网站关键词优化费用
  • 做网站要那些设备百度指数如何提升
  • 网站速度的重要性东莞网站建设优化技术
  • 招商门户网站建设方案seo诊断网站
  • 旅游网站框架百度世界500强排名
  • 南昌net网站开发免费推广方式都有哪些
  • 网站建设7个基本流程分析友情链接网
  • 开发一个b2c网站有哪些困难郑州做网站公司排名
  • 中文网址的作用排名优化公司哪家效果好
  • 成立公司的流程和要求及费用搜索引擎关键词快速优化
  • 河南省建设教育协会网站互联网销售是什么意思
  • 在wordpress主题后台安装了多说插件但网站上显示不出评论模块seo算法是什么
  • 北京大兴地区网站建设搜索优化软件
  • 凉山州规划和建设局网站北京seo网站开发
  • 网站建设服务器介绍图片北京百度seo服务
  • 做低价的跨境电商网站网站关键词排名
  • 企业1级域名网站怎么做seo系统源码
  • 风铃做的网站能否推广汽车网站建设方案
  • 2020肺炎疫情上海seo有哪些公司
  • 成都设计网站建设企业网站seo推广
  • 晋江网站建设费用关键词查网站
  • 担路网口碑做网站好吗什么叫做优化
  • 郑州建设企业网站找哪个公司媒体发布平台
  • 小说网站建设需要什么哈尔滨seo
  • wordpress 问答模版南宁百度首页优化
  • 网站要背代码?seo服务工程
  • iis做的网站其他电脑能看吗网络营销渠道有哪几种
  • 延庆住房城乡建设委网站外包接单平台
  • 商城开发网站目前最好的引流推广方法
  • 学历提升机构的套路关键词seo资源