SpringBoot - IOC&DI

发布时间 2023-08-06 11:20:12作者: chuangzhou

三层架构

  • controller:控制层,接收前端请求,对请求进行处理,并响应数据
  • service:业务逻辑层,处理具体的业务逻辑
  • dao:数据访问层(Data Access Object)(持久层),负责访问操作,包括数据得增删改查

员工案例重构:

controller:


package com.chuangzhou.controller;

import com.chuangzhou.pojo.Emp;
import com.chuangzhou.pojo.Result;
import com.chuangzhou.service.EmpService;
import com.chuangzhou.service.impl.EmpServiceImplA;
import com.chuangzhou.utils.XmlParserUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class EmpController {

    private EmpService empService = new EmpServiceImplA();

    @RequestMapping("/listEmp")
    public Result listEmp(){
        List<Emp> emps = empService.empList();
        return Result.success(emps);
    }
}

service:

package com.chuangzhou.service.impl;

import com.chuangzhou.dao.EmpDao;
import com.chuangzhou.dao.impl.EmpDaoImplA;
import com.chuangzhou.pojo.Emp;
import com.chuangzhou.service.EmpService;

import java.util.List;

public class EmpServiceImplA implements EmpService {

    private EmpDao empDao = new EmpDaoImplA();

    @Override
    public List<Emp> empList() {
        List<Emp> emps = empDao.empList();

        emps.stream().forEach(emp -> {
            String gender = emp.getGender();
            if ("1".equals(gender)){
                emp.setGender("男");
            }else if("2".equals(gender)){
                emp.setGender("女");
            }
            //         <!-- 1: 讲师, 2: 班主任 , 3: 就业指导 -->
            String job = emp.getJob();
            if ("1".equals(job)){
                emp.setJob("讲师");
            }else if("2".equals(job)){
                emp.setJob("班主任");
            }else if("3".equals(job)){
                emp.setJob("就业指导");
            }
        });
        return emps;
    }
}

dao 层:

package com.chuangzhou.dao.impl;

import com.chuangzhou.dao.EmpDao;
import com.chuangzhou.pojo.Emp;
import com.chuangzhou.utils.XmlParserUtils;

import java.util.List;

public class EmpDaoImplA implements EmpDao {
    @Override
    public List<Emp> empList() {
        String filePath = this.getClass().getClassLoader().getResource("emp.xml").getPath();
        List<Emp> emps = XmlParserUtils.parse(filePath, Emp.class);
        return emps;
    }
}