首页 > 其他分享 >springboot分层解耦

springboot分层解耦

时间:2023-09-27 21:26:06浏览次数:35  
标签:wmx springboot dao List 分层 emp import com

软件开发需要符合“高内聚低耦合”的特性,所以需要将程序分为三层

即:

 使每一层各司其职,增加软件的复用性,使其更加便于维护,利于扩展。

controller层:

package com.wmx.controller;


import com.wmx.dao.EmpDao;
import com.wmx.dao.impl.EmpDaoA;
import com.wmx.pojo.Emp;
import com.wmx.pojo.Result;
import com.wmx.service.EmpService;
import com.wmx.service.impl.EmpServiceA;
import com.wmx.utils.XmlParserUtils;
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 EmpController { @Autowired//运行时,IOC容器会提供该类型的bean对象,并赋值给该变量 - 依赖注入 private EmpService empService ; @RequestMapping("/listEmp") public Result list(){ List<Emp> empList = empService.listEmp(); //3、响应数据 return Result.success(empList); } }

dao层:

package com.wmx.dao.impl;

import com.wmx.dao.EmpDao;
import com.wmx.pojo.Emp;
import com.wmx.utils.XmlParserUtils;
import org.springframework.stereotype.Component;

import java.util.List;

@Component //将当前类交给IOC容器,成为IOC容器的bean
public class EmpDaoA implements EmpDao {

    @Override
    public List<Emp> listEmp() {
        //1加载并解析xml文件
        String file = this.getClass().getClassLoader().getResource("emp.xml").getFile();
        System.out.println(file);
        List<Emp> empList = XmlParserUtils.parse(file, Emp.class);

        return empList;
    }
}

service层:

package com.wmx.service.impl;

import com.wmx.dao.EmpDao;
import com.wmx.pojo.Emp;
import com.wmx.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

@Component//将当前类交给IOC容器,成为IOC容器的bean
public class EmpServiceA implements EmpService {
    @Autowired//运行时,IOC容器会提供该类型的bean对象,并赋值给该变量 - 依赖注入
    private EmpDao  empDao ;
    @Override
    public List<Emp> listEmp() {
        //1、调用dao,获取数据
        List<Emp> empList = empDao.listEmp();
        //2、对数据进行转换处理
        empList.stream().forEach(emp -> {
            //处理 gender 1:男 2:女
            String gender = emp.getGender();
            if("1".equals(gender)){
                emp.setGender("男");
            }
            else if("2".equals(gender)){
                emp.setGender("女");
            }

            //处理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("就业指导");
            }
        });

        return empList;
    }
}

 

标签:wmx,springboot,dao,List,分层,emp,import,com
From: https://www.cnblogs.com/xiao-hong111/p/17734349.html

相关文章

  • SpringBoot学习4(02整合项目+前端)
    1.添加web界面在resources包下的static包中导入需要用的包,编写html。 1.1测试一下 页面控制台中成功获取数据 1.2页面显示:查询全部信息 1.3添加功能实现 新建按钮的点击事件为   @click="handleCreate()"点击新建后弹出添加页面,该页面的确定提交按钮点击事......
  • SpringBoot学习3(01整合案例项目数据层、业务层、表现层)
    1.整合第三方技术1.整合JUnittarget测试类和引导类为什么要有对应关系,如果没有相似的包结构导致出现的问题原因如下:基础篇-24-整合JUnit——classes属性_哔哩哔哩_bilibili2.整合MyBatis创建的时候选上mybatis和sql驱动 创建之后,进入setting修改信息,打开pom.xml修改信息,如......
  • 【Java】SpringBoot邮件发送实现
    Springboot3邮件发送哔哩哔哩萌狼蓝天微信公众号萌狼蓝天依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>配置这里我用的是网易免费企......
  • Springboot+Echarts(五)
    Mybatis-plus操作的多表查询和分页查询今天首先回顾了之前所学的基本的单表增删改查这里想再自己写一遍是为了方便自己以后的开发流程顺利首先创建Springboot项目,选择java8和Springboot2.x.x之后选择Web依赖然后添加依赖<dependency><groupId>com.baomidou<......
  • Jemeter多文件上传(用SpringBoot简单写一个接口测试)
    写一个多文件上传接口使用Jemeter的HttpRequest组件实现多文件上传测试可以看到多文件实现方式只需要在参数里面添加多行就行了,参数名称写同一个。......
  • Springboot一些默认值
    默认logSpringBoot默认使用Logback作为日志框架,所以你不需要做任何特殊的配置就可以开始使用Logback。但是,如果你想自定义Logback的行为,你可以通过创建一个logback-spring.xml文件来做到这一点<?xmlversion="1.0"encoding="UTF-8"?><configuration><appendername="STD......
  • Springboot自动装配原理
    BFPP:BeanFactoryPostProcessorBPP:BeanPostProcessorBDRPP:BeanDefinitionRegistryPostProcessor自动装配实现的原理:当启动springboot应用程序的时候,会先创建SpringApplication的对象,在对象的构造方法中会进行某些参数的初始化工作,最主要的是判断当前应用程序的类型以及......
  • SpringBoot配置文件加载过程
    前置知识配置属性抽象和各种实现类PropertySource<T>下面是抽象类属性源和它的两个内部实现类介绍//抽象父类publicabstractclassPropertySource<T>{/**属性源名称**/protectedfinalStringname;/**属性源数据**/ protectedfinalTso......
  • 工作流如何实现?集成?springboot+vue+activiti技术栈
    前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot+vue+activiti集成了activiti在线编辑器,流行的前后端分离部署开发模式,快速开发平台,可插拔工作流服务。工作......
  • 7、springboot使用MessageSource国际化提示
    目录springboot使用MessageSource国际化提示1、MessageSource源码2、yml配置MessageSource3、创建MessagesUtils工具类简化使用springboot使用MessageSource国际化提示1、MessageSource源码MessageSource是spring自带的一个接口,源码如下packageorg.springframework.context;......