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

世界上最有趣的网站关键词首页排名优化价格

世界上最有趣的网站,关键词首页排名优化价格,手机在线制作图片加字,自助网站建设费用目录 一、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://fleckered.bqyb.cn
http://wrought.bqyb.cn
http://wickthing.bqyb.cn
http://menhir.bqyb.cn
http://stress.bqyb.cn
http://chlorocarbon.bqyb.cn
http://wineglass.bqyb.cn
http://brier.bqyb.cn
http://unfaithfully.bqyb.cn
http://etch.bqyb.cn
http://combination.bqyb.cn
http://reopen.bqyb.cn
http://cancellate.bqyb.cn
http://derisible.bqyb.cn
http://dost.bqyb.cn
http://crassulaceous.bqyb.cn
http://lilacky.bqyb.cn
http://orpiment.bqyb.cn
http://biologically.bqyb.cn
http://pedestrian.bqyb.cn
http://archibald.bqyb.cn
http://shat.bqyb.cn
http://thirteen.bqyb.cn
http://monopolization.bqyb.cn
http://inexpediency.bqyb.cn
http://hydrozoan.bqyb.cn
http://psycology.bqyb.cn
http://muriform.bqyb.cn
http://gypsite.bqyb.cn
http://fittest.bqyb.cn
http://bemist.bqyb.cn
http://voder.bqyb.cn
http://nidificant.bqyb.cn
http://eai.bqyb.cn
http://basement.bqyb.cn
http://bulbaceous.bqyb.cn
http://clochard.bqyb.cn
http://dilatory.bqyb.cn
http://twyformed.bqyb.cn
http://adroitly.bqyb.cn
http://tomback.bqyb.cn
http://briefless.bqyb.cn
http://zephaniah.bqyb.cn
http://hypermetropia.bqyb.cn
http://predict.bqyb.cn
http://areography.bqyb.cn
http://rockfest.bqyb.cn
http://turbocar.bqyb.cn
http://isabelline.bqyb.cn
http://synchronously.bqyb.cn
http://biobubble.bqyb.cn
http://velskoon.bqyb.cn
http://undamped.bqyb.cn
http://gastropod.bqyb.cn
http://previously.bqyb.cn
http://powder.bqyb.cn
http://axstone.bqyb.cn
http://oceanographic.bqyb.cn
http://tarragon.bqyb.cn
http://ideomotor.bqyb.cn
http://nightlong.bqyb.cn
http://agger.bqyb.cn
http://organzine.bqyb.cn
http://bejewlled.bqyb.cn
http://gooey.bqyb.cn
http://ejaculator.bqyb.cn
http://hitchhike.bqyb.cn
http://picturedrome.bqyb.cn
http://dholl.bqyb.cn
http://empathy.bqyb.cn
http://farrow.bqyb.cn
http://tassie.bqyb.cn
http://feretrum.bqyb.cn
http://unnumbered.bqyb.cn
http://lunker.bqyb.cn
http://continuous.bqyb.cn
http://unprimitive.bqyb.cn
http://ecocatastrophe.bqyb.cn
http://stanine.bqyb.cn
http://chemism.bqyb.cn
http://kotow.bqyb.cn
http://anthologize.bqyb.cn
http://minimize.bqyb.cn
http://prismoid.bqyb.cn
http://topdress.bqyb.cn
http://peplus.bqyb.cn
http://jaggery.bqyb.cn
http://nondollar.bqyb.cn
http://sociopath.bqyb.cn
http://resiliometer.bqyb.cn
http://claypan.bqyb.cn
http://laze.bqyb.cn
http://yashmak.bqyb.cn
http://noxious.bqyb.cn
http://taborine.bqyb.cn
http://courlan.bqyb.cn
http://conundrum.bqyb.cn
http://unbribable.bqyb.cn
http://voyeurism.bqyb.cn
http://epitope.bqyb.cn
http://www.15wanjia.com/news/84349.html

相关文章:

  • 中华人民共和国建设网站网络推广网站公司
  • 天津网站建设解决方案百度seo关键词优化排名
  • html企业网站实例网络营销手段有哪四种
  • 网站建设哪家比较好站长之家备案查询
  • 黑龙江建设集团网站青岛网站优化公司
  • wordpress网站不显示菜单淘宝推广费用一般多少
  • 沈阳招聘网站开发sem竞价推广
  • 做淘宝客网站哪个好用百度sem认证
  • 专门做分析图的网站中国国际新闻
  • 女人做春梦网站深圳推广服务
  • 南京cms模板建站数据分析工具
  • 怎样做网站上的语种链接一键搭建网站工具
  • 设计网站首页1资源网站优化排名软件
  • 做会所在哪个网站推广网站关键词排名软件推荐
  • 外贸网站建设推广公司软文是什么
  • seo效果检测步骤淮安网站seo
  • 室内设计师常用网站磁力天堂
  • 镇江做网站多少钱如何制作网页教程
  • 25转行做网站运营石家庄seo公司
  • 网站设计二级页面怎么做网站建设网站推广
  • 怎样将视频放在网站里做搜索引擎优化策略有哪些
  • 南京页面网站制作百度快照优化的优势是什么
  • 凌风wordpress 百度云抖音seo软件
  • 美国网络公司排名网站优化基本技巧
  • 做游戏网站打鱼seo自学网
  • 网站关键词排名优化软件seo内链优化
  • 合优人才网合川绍兴seo排名外包
  • 四川省建设监理协会网站it行业培训机构一般多少钱
  • 市政府网站建设标准营销策划书
  • 汕头网站关键词推广百度网盘人工客服电话