首页 > 其他分享 >SpringBoot - IOC&DI

SpringBoot - IOC&DI

时间:2023-08-06 11:22:50浏览次数:43  
标签:SpringBoot DI IOC List emp import com chuangzhou emps

目录

三层架构

  • 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;
    }
}

标签:SpringBoot,DI,IOC,List,emp,import,com,chuangzhou,emps
From: https://www.cnblogs.com/czzz/p/17609193.html

相关文章

  • 记录小知识 springboot,maven创建的多模块 子模块无法使用父类版本
    使用依赖时发现依赖有问题,回来检查发现没有加springboot父工程检查父模块是否加入父标签:只需要在父模块中添加一次就可以了<parent><groupId>org.springframework.boot</groupId><cartifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELE......
  • Codeforces Round 890 (Div. 2) supported by Constructor Institute 题解
    A.TalesofaSort关键就是找逆序对记一组逆序对下标为\(l,r\),则求出最大的\(a_l\)即可B.GoodArrays记要构造的GoodArray为\(b\)前置:\(\forall1\lei\len,b_i=1\)然后\(O(n)\)扫一遍看一下有没有重复,有重复就\(b_i\leftarrowb_i+1\)扫完之后,记\(sum=\sum_......
  • 解决Redis缓存雪崩问题的有效方法
    Redis缓存雪崩是指在某个时间点,缓存中大量的数据同时过期失效,导致大量请求直接访问后端数据库,造成数据库压力激增,甚至导致系统崩溃。本文将介绍几种有效的方法,帮助您解决Redis缓存雪崩问题,提高系统的稳定性和可靠性。合理设置缓存的过期时间:缓存的过期时间是导致缓存雪崩的主要原......
  • Codeforces Round 882 (Div. 2) 题解
    A.TheManwhobecameaGod求出相邻两个元素的差值,去掉前\(m\)个大的差值以后的差值和即为答案B.HamonOdyssey由按位与的性质可以知道,前缀与和的值只会越来越小,只要和为\(0\)的时候我们就清空按位与前缀和,增加一下次数,如果最终次数不为\(0\),特判一下,次数加一即可C.......
  • 【反思】洛谷8月月赛 Div.2 & RiOI Round 2 赛后反思
    RiOIR2赛后反思赛时开了一个T1,但是\(0pts\),然后就跑去跟人对线然后复盘(主要是我的锅,我忘记对线怎么开始的了)到了吃饭(雾不过本来我也不会做,不能怪人家赛后是shenshen教我T1+看的若归老师的反思捏推歌:歌爱ユキ&稲葉曇《キミに回帰缐》(希望没打错是我的错吗铅笔......
  • Springboot中怎么选择性使用thymeleaf进行渲染?
    SpringBoot默认支持多种模板引擎,包括Thymeleaf。如果你想选择性地使用Thymeleaf进行渲染,这基本上取决于你的Controller的实现。以下是一个基本示例:首先,确保你的SpringBoot项目已经添加了Thymeleaf的依赖。在你的pom.xml文件中,你应该看到类似以下的内容<dependency>......
  • 对IoC容器和Bean的学习笔记
    WhatWeMeanby"Spring"Theterm"Spring"meansdifferentthingsindifferentcontexts.ItcanbeusedtorefertotheSpringFrameworkprojectitself,whichiswhereitallstarted.Overtime,otherSpringprojectshavebeenbuilton......
  • Codeforces Round 882 (Div. 2)
    CodeforcesRound882(Div.2)ATheManwhobecameaGod给定一个数组\(\{x_1,x_2,\cdots,x_n\}\)和一个整数\(k\),记\(f(l,r)=\sum_{i=0}^{i\ler-l}|x_{l+i}-x_{l+i+1}|\),求将数组划分为\(k\)个部分的划分方案,使得对每个部分的\(f(l,r)\)之和最小.​ 将两数相......
  • Codeforces Round 885 (Div. 2) C. Vika and Price Tags
    C.VikaandPriceTagsC-VikaandPriceTags题意:​ 初始两串数列\(a,b\),对于第\(i\)个数,令\(c_i=|a_i-b_i|\),然后将数列\(a=b,b=c\)。重复这样的操作,问是否可能让\(a\)串全部变成0。思路:这题实际上之前已经发过,但最近打牛客对这题有了新的理解,所以来记录一下。​ ......
  • 【LGR-150-Div.2】洛谷 8 月月赛 I & RiOI Round 2
    比赛实况赛前看了眼难度分布,红橙黄绿,感觉随便杀(爆我)顺序开题,先看A题,没仔细读,一眼以为单次操作只能翻转一位,写了个十进制转二进制找不同,结果WA了。再看了一眼题,发现题干定义的操作可以一次操作很多位,然后一个操作是把0变1,另一个是把1变0。所以只需要看两个数二进制对......