目录
一.三层架构
复用性差,难以维护和管理
前端发起请求,先会到达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生效