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

长沙便宜网站建设英语门户网站织梦源码

长沙便宜网站建设,英语门户网站织梦源码,房产网站模板,饿了么网站做生鲜吗目录 一、IOCDI入门 二、三层架构 数据库访问层 业务逻辑层 控制层 一、IOCDI入门 在软件开发中#xff0c;IOC#xff08;Inversion of Control#xff09;和DI#xff08;Dependency Injection#xff09;是密切相关的概念。 IOC#xff08;控制反转DI入门 二、三层架构  数据库访问层 业务逻辑层 控制层 一、IOCDI入门 在软件开发中IOCInversion of Control和DIDependency Injection是密切相关的概念。 IOC控制反转 IOC是一种设计原则通过它可以实现程序的松耦合。传统的控制流程是由程序员直接编写代码控制对象的创建和调用关系而控制反转则是将这种控制权交给一个容器例如IOC容器来管理。换句话说控制反转就是控制权的转移由程序员转移到容器中容器负责创建对象并管理对象之间的依赖关系。 DI依赖注入 DI是实现IOC的一种具体方式。它是指在对象创建的过程中通过将对象所依赖的其他对象即依赖关系注入到对象中从而实现对象之间的解耦。这样对象不再负责自己的依赖关系而是由外部容器在创建对象时提供所需的依赖。 依赖注入可以通过构造函数注入、属性注入或方法注入等方式来实现。其中最常见的是构造函数注入在这种方式下对象在创建时必须提供其所需的依赖否则无法正确实例化对象。 综合起来说IOC是一种设计原则DI是实现IOC的具体技术手段。通过DI我们可以在应用程序中实现控制反转让对象之间的依赖关系由容器来管理从而提高代码的可维护性、可测试性和灵活性。 要把某个对象交给IOC容器管理需要在对应的类上加上如下注解之一 注解说明位置ControllerComponent的衍生注解标注在控制器类上ServiceComponent的衍生注解标注在业务类上RepositoryComponent的衍生注解标注在数据访问类上由于与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 ListEmp listEmp();} Repository // 将当前对象交给IOC容器管理,成为IOC容器的bean public class EmpDaoA implements EmpDao {Overridepublic ListEmp listEmp() {// 1、加载并解析xml文件 // String file this.getClass().getClassLoader().getResource(emp.xml).getFile();String file XXXXXXXXXXXXx;System.out.println(file); // 输出路径ListEmp empList XmlParserUtils.parse(file, Emp.class);return empList;}}业务逻辑层 // 业务逻辑层 public interface EmpService {public ListEmp listEmp();}Primary // 使用Primary注解当存在多个相同类型的Bean注入时加上Primary注解来确定默认的实现。 Service public class EmpServiceA implements EmpService {// 创建数据库访问层对象Autowiredprivate EmpDao empDao;Overridepublic ListEmp listEmp() {ListEmp 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(){ListEmp empList empService.listEmp();// 3、响应数据return Result.success(empList);}}三层架构的优点 复用性强 便于维护 利用扩展 解决了耦合问题 首先需要了解软件开发涉及到的两个概念内聚和耦合。 内聚软件中各个功能模块内部的功能联系。 耦合衡量软件中各个层/模块之间的依赖、关联的程度。 软件设计原则高内聚低耦合。 高内聚指的是一个模块中各个元素之间的联系的紧密程度如果各个元素(语句、程序段)之间的联系程度越高则内聚性越高即 高内聚。 低耦合指的是软件中各个层、模块之间的依赖关联程序越低越好。
http://www.dnsts.com.cn/news/138421.html

相关文章:

  • 简述电子商务网站建设的基本要求6网络股权设计培训课程
  • 网站宣传的重要性安徽建设网
  • 网站制作赚钱吗网站开发动静分离实践
  • 免费行情软件网站有哪些开店怎么做会员系统
  • 像网站的ppt怎么做的百度认证官网
  • pc和移动端网站跳转那个平台能免费做网站
  • 网站域名的分类阿里云免费服务器
  • 专业网站建设最新报价网站建设学习网站
  • 织梦网站主页地址更改厦门创意互动网站建设
  • 苏州个人网站制作亳州公司做网站
  • 增城百度做网站多少钱自学网站建设教程
  • winxp下做网站信息化建设
  • 深圳网站设计公司招聘前端转行可以找啥工作
  • 医疗网站建设网站深圳设计收费标准
  • 北京师范大学学风建设专题网站做相册视频的网站
  • 大连培训通网站建设阿里云的wordpress建站
  • 琼山网站制作长沙门户网站
  • 分类信息建站系统wordpress relevanssi
  • 云南省和城乡建设厅网站wordpress账号密码在哪个文件下
  • 什么语言做网站快浦口区网站建设及推广
  • 企业建站源代码室内设计师培训网
  • 网站开发南京招聘惠州规划建设局网站
  • 为什么大公司开发网站农业电商平台有哪些
  • 萍乡网站建设哪家好图片 网站开发
  • 贵州省住房和城乡建设厅官方网站首页公众号 微网站开发
  • 苏州网站建设集团国际教育机构网站建设开发方案
  • 咨询服务网站源码爱客crm登陆
  • 安阳网站建设服务路由器做网站服务器
  • 上海平台网站建设公云建站网址
  • 咸阳企业网站建设网站设计师发展方向