改进前后端交互实例

前后端交互实例(javaweb05)-CSDN博客

在这之前我假设大家都已经学完了IOC和DI

不明白的这里我也解释一下,首先是两个概念

1.控制反转:对象的创建控制权由程序自身转到外部(容器)

2.依赖注入:容器为程序提供运行时所依赖的资源

Bean对象:IOC容器中创建,关联的对象,称之为bean
 

这是上一篇文章的前后端交互里面有一个EmpController代码,在新的一节内容中,我们知道可以将它分成更加结构分明的几部分.

1.Dao数据访问层

2.Service逻辑处理层

3.Controller进行前后端的数据交互

@RestController
public class EmpController {
    @RequestMapping("/listEmp")
    public Result list(){
        //数据访问层Dao
        String file=this.getClass().getClassLoader().getResource("emp.xml").getFile();
        System.out.println(file);
        List<Emp>empList=com.yhw.utils.XmlParserUtils.parse(file, Emp.class);

        //数据处理层Service
        empList.stream().forEach(emp -> {
            //处理男和女
            String gender=emp.getGender();
            if("1".equals(gender)){
                emp.setGender("男");
            }else{
                emp.setGender("女");
            }
            String job=emp.getJob();
            if("1".equals(job)){
                emp.setJob("讲师");
            }else if("2".equals(job)){
                emp.setJob("班主任");
            }else{
                emp.setJob("就业指导");
            }
        });


        //下面这一层的是数据交互
        return Result.success(empList);
    }
}

这是上一小结的代码,我们要把它分成三个结构

那么我们现在可以先建两个包

一个dao包和service包,包括一个接口和impl包里的实现 

首先来实现EmpDao

1.EmpDao接口

public interface EmpDao {
    public List<Emp>listEmp();
}

2.EmpDao实现,这里我只写一个A实现,其它它可以有很多实现

@Component
public class EmpDaoA implements EmpDao {
    @Override
    public List<Emp> listEmp(){
        String file=this.getClass().getClassLoader().getResource("emp.xml").getFile();
        System.out.println(file);
        List<Emp> empList=com.yhw.utils.XmlParserUtils.parse(file, Emp.class);
        return empList;
    }
}

@Component表示把他放入IOC容器中

接下来实现Servce

1.Service接口

public interface EmpService {
    public List<Emp> listEmp();
}

2.实现

import java.util.List;
@Component
public class EmpServiceA implements EmpService {
    @Autowired
    private EmpDao empDao;
    @Override
    public List<Emp>listEmp(){
        List<Emp>empList=empDao.listEmp();
        empList.stream().forEach(emp -> {
            //处理男和女
            String gender=emp.getGender();
            if("1".equals(gender)){
                emp.setGender("男");
            }else{
                emp.setGender("女");
            }
            String job=emp.getJob();
            if("1".equals(job)){
                emp.setJob("讲师");
            }else if("2".equals(job)){
                emp.setJob("班主任");
            }else{
                emp.setJob("就业指导");
            }
        });
        return empList;
    }
}

@Autowired表示将当前IOC容器中的EmpDao实现自动注入到其中

接下来完善Controller

@RestController
public class EmpController {
    @Autowired
    private EmpService empService;
    @RequestMapping("/listEmp")
    public Result list(){
        //加载并解析XML文件
        //类->类加载器->找到类路径下的emp.xml->获取文件路径
        List<Emp> empList=empService.listEmp();

        //调用result方法
        return Result.success(empList);
    }
}

我们将原先的Dao层和Service层的对象删除,然后自行选择装配的Dao和Service组件,最后装配到Controller.

相关推荐

  1. Web前后交互

    2024-04-21 00:58:01       25 阅读
  2. SpringMVC实验(四)——前后分离下的数据交互

    2024-04-21 00:58:01       62 阅读
  3. 前后交互—数据库与身份认证

    2024-04-21 00:58:01       44 阅读
  4. Vue2 基础四前后交互

    2024-04-21 00:58:01       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 00:58:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 00:58:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 00:58:01       82 阅读
  4. Python语言-面向对象

    2024-04-21 00:58:01       91 阅读

热门阅读

  1. 【Cookie,Session,Token,JWT的区别】

    2024-04-21 00:58:01       35 阅读
  2. Android 单一音量控制

    2024-04-21 00:58:01       34 阅读
  3. Spark面试整理-Spark集成Hive

    2024-04-21 00:58:01       31 阅读
  4. 4月20日,每日信息差

    2024-04-21 00:58:01       33 阅读
  5. Python框架django项目

    2024-04-21 00:58:01       34 阅读
  6. oepncv android 使用笔记

    2024-04-21 00:58:01       35 阅读
  7. 使用leaflet给地图添加蒙版(超级详细免费看)

    2024-04-21 00:58:01       39 阅读
  8. 个人开发者,Spring Boot 项目如何部署

    2024-04-21 00:58:01       34 阅读
  9. HttpServletResponse HttpServletRequest

    2024-04-21 00:58:01       32 阅读