Springboot三层架构

Controller层

java 复制代码
package com.wzb.springbootmybatis20240920.ThreeLevelsExercise20240920.controller;

import com.wzb.springbootmybatis20240920.Pojo.Emp;
import com.wzb.springbootmybatis20240920.Pojo.Result;

import com.wzb.springbootmybatis20240920.ThreeLevelsExercise20240920.service.Service;
import com.wzb.springbootmybatis20240920.ThreeLevelsExercise20240920.service.ServiceInterface;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

// 注解
@RestController
public class Controller {
    @Autowired
    ServiceInterface service;


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

Dao层

java 复制代码
package com.wzb.springbootmybatis20240920.ThreeLevelsExercise20240920.dao;


import com.wzb.springbootmybatis20240920.Pojo.Emp;
import com.wzb.springbootmybatis20240920.ThreeLevelsExercise20240920.utils.XmlParserUtils;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class Dao implements DaoInterface{
    @Override
    public List<Emp> getList() {
        // 加载.xml文件
        String filePath = this.getClass().getClassLoader().getResource("emp.xml").getFile();
        // 利用dom4j解析.xml文件
        // parse方法需要两个参数,需要解析文件的路径和要解析成的对象
        List<Emp> empList = XmlParserUtils.parse(filePath, Emp.class);
        return empList;
    }
}

Service层

java 复制代码
package com.wzb.springbootmybatis20240920.ThreeLevelsExercise20240920.service;


import com.wzb.springbootmybatis20240920.Pojo.Emp;
import com.wzb.springbootmybatis20240920.ThreeLevelsExercise20240920.dao.Dao;
import com.wzb.springbootmybatis20240920.ThreeLevelsExercise20240920.dao.DaoInterface;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.function.Consumer;

@Component
public class Service implements ServiceInterface{
    @Autowired
    private DaoInterface dao;


    @Override
    public List<Emp> getList() {
        List<Emp> empList = dao.getList();
        // 按照业务逻辑处理userList中的数据
        empList.forEach(new Consumer<Emp>() {
            @Override
            public void accept(Emp emp) {
                String gender = emp.getGender();
                if (gender.equals("1")) {
                    emp.setGender("男");
                } else if (gender.equals("2")) {
                    emp.setGender("女");
                } else {
                    emp.setGender("Error");
                }

                String job = emp.getJob();
                switch (job) {
                    case "1" -> emp.setJob("讲师");
                    case "2" -> emp.setJob("班主任");
                    case "3" -> emp.setJob("就业指导");
                    default -> emp.setJob("Other");
                }
            }
        });
        return empList;
    }
}
相关推荐
三品吉他手会点灯3 小时前
C语言学习笔记 - 50.流程控制4 - 流程控制为什么非常非常重要
c语言·开发语言·笔记·学习
云飞云共享云桌面4 小时前
传统工作站 vs 云飞云共享云桌面:制造业设计云桌面选型深度对比
运维·服务器·前端·网络·3d·架构·制造
huangdong_4 小时前
电商平台图片URL原图转换技术深度解析:从缩略图到高清原图的完整方案
java·后端·spring
記億揺晃着的那天4 小时前
Java 调用外部 Go 程序的实践:ProcessBuilder 在生产环境中的应用
java·golang·processbuilder
JAVA面经实录9174 小时前
Java 数据结构与算法 (终极完整学习文档)
java·数据结构·算法
llz_1125 小时前
web-第四次课后作业
前端·spring boot·web
JAVA面经实录9175 小时前
操作系统面试题
java·服务器·数据库·计算机网络·面试
一杯奶茶¥6 小时前
基于springboot的失物招领管理系统带万字文档 校园失物招领管理系统 失物认领管理系统java springboot vue
java·vue.js·spring boot·java项目
在放️6 小时前
Python 爬虫 · 第三方代理接入与合规使用
开发语言·爬虫·python
不能只会打代码6 小时前
边缘视频分析平台的架构设计与性能优化——从750ms到190ms的调优之路
java·spring boot·redis·性能优化·边缘计算·物联网竞赛