Bootstrap

(javaweb)分层解耦

目录

一.三层架构

二.分层解耦

三.IOC&DI入门

四.IOC详解

五. DI详解


 

一.三层架构

复用性差,难以维护和管理 

前端发起请求,先会到达controller,再调用service进行逻辑处理,逻辑处理的前提是先拿到数据,到dao层,再去操作文件中的数据。将数据拿到,再返回给service,service进行逻辑处理,返回给controller进行响应数据给前端。

package com.itheima.controller;

import com.itheima.Util.XmlParserUtils;
import com.itheima.pojo.Emp;
import com.itheima.pojo.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class Empcontroller {
    @RequestMapping("/listEmp")
    public Result list(){
        //加载并解析emp.xml  并且封装到集合当中    dao层
        String file=this.getClass().getClassLoader().getResource("emp.xml").getFile();
        System.out.println(file);
        List<Emp> empList = XmlParserUtils.parse(file, Emp.class);

        //对数据进行转换处理   service层
        //1.处理gender
        empList.stream().forEach(emp -> {
            String gender=emp.getGender();
            if("1".equals(gender)){
                emp.setGender("男");
            } else if ("2".equals(gender)) {
                emp.setGender("女");
            }
            //2.处理job
            String job=emp.getJob();
            if ("1".equals(job)){
                emp.setJob("讲师");
            }else if ("2".equals(job)){
                emp.setJob("班主任");
            } else if ("3".equals(job)) {
                emp.setJob("就业指导");
            }
        });




        //3.响应数据   controller层
        return Result.success(empList);
    }
}

先定义dao的接口,增强程序的灵活性和拓展性

 

三层架构:便于维护 方便架构 复用性强

二.分层解耦

 解耦:解除耦合

高内聚:将自己相关的内容放一块,无关的不写    依赖程度越高,耦合程度越高

设置controller要创建service类---耦合了

设计原则:高内聚低耦合(高内聚:模块内部之间的功能越紧密越好 低耦合:尽可能去降低模块与模块之间,层与层之间的关联)最好能做到解除耦合:层与层之间没有依赖(灵活性可扩展性提高)

 容器:IOC容器或者叫spring容器

容器中创建的对象:bean对象

三.IOC&DI入门

1.将new出的对象删除--空指针异常

IOC与DI共同完成业务解耦操作

控制反转:

依赖注入: 

四.IOC详解

 IOC控制反转--将对象的使用权交给ioc容器,由ioc容器创建和管理这些对象

@Conponent--声明bean对象----------衍生出三个注解

在项目开发当中,某一个类不能规整到那三层里面,若还想将类交给ioc容器管理,就使用conponent注解

value属性来声明bean的名字-------首字母小写--bean的名字

是默认的bean的名字

一般不用指定 采用默认的名字即可

五. DI详解

ioc容器要为应用程序提供运行时所依赖的资源  资源--就是对象

primary--让当前的bean生效

​​​​​​​

 

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;