Part02 ☀️

YangeIT大约 14 分钟tlias智能学习辅助系统MysqlApifoxServletHTTPGETPOST

Part02 ☀️

今日目标

  • SpringBoot进阶案例
    • JSON的概念数据传输格式
    • 请求消息获取和响应消息封装请求和响应
    • Tomcat端口修改配置文件
  • SpringBoot常用注解
    • SpringIOC的概念
  • 使用Mybatis集成SpringBoot操作完成数据的增删改查Java操作数据库
  • 项目介绍
    • 开发流程介绍
    • 开发角色介绍
    • 开发环境介绍

1. SpringBoot获得参数和数据响应 ✏️🍐

SpringBoot获得参数和数据响应

本节,我们主要讲解,如何接收页面传递过来的请求数据

  • 接收普通类型参数传递
  • 接收json数据参数
  • 接收路径参数

响应

  • 返回一般Json数据

请求参数获取实操

代码操作

简单参数 :在向服务器发起请求时,向服务器传递的是一些普通的请求数据。

参数格式:http://localhost:8848/users/simpleParam?name=韩立&age=188

路径上的参数名字和方法的形参必须一模一样,类型也要一致

操作步骤流程: 👇👇

image
image

响应数据实操

SpringBoot工程,Controller中的方法返回值对象,自动转成了Json字符串

image
image

总结

课堂作业

  1. 根据上述提示,完成路径参数和普通参数的传值,可以参考上述的代码🎤

2. Spring核心概念 🍐 🍐

Spring核心概念

之前我们在编写代码时,需要什么对象,就直接new一个就可以了。 这种做法呢,层与层之间代码就耦合了,费时间且不方便,最好是拿来就用!! 有点像 饭来张口衣来伸手!那么得这么做:

1). 不能使用new对象

2). 应用程序中用到这个对象,就直接从容器中获取,不需要创建

我们想要实现上述解耦操作,就涉及到Spring中的两个核心概念:

  • 控制反转: Inversion Of Control,简称IOC

对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。 对象的创建权由程序员主动创建转移到容器(由容器创建、管理对象)。这个容器称为:IOC容器或Spring容器

  • 依赖注入: Dependency Injection,简称DI

容器为应用程序提供运行时,所依赖的资源,称之为依赖注入。

程序运行时需要某个资源,此时容器就为其提供这个资源。

IOC容器中创建、管理的对象,称之为:bean对象

image
image

总结

课堂作业

  1. 截图下图,说说什么IOC,以及IOC有什么好处?🎤
看看这张图,联想一下这样的好处
看看这张图,联想一下这样的好处

3. SpringBoot下集成Mybatis框架 🍐 ✏️❤️

SpringBoot下集成Mybatis框架

MyBatis
MyBatis

MyBatis 是一个持久层框架,用于简化 Java 应用程序与关系型数据库的交互。它通过将 SQL 语句与 Java 代码进行映射,提供了一种方便且灵活的方式来访问和操作数据库

中文网open in new window

需求1:查询id为30的用户,返回浏览器可以先自己分析

点击查看详细步骤
  1. 在UserMapper接口中,创建getById方法,并且在方法上添上注解@Select,写上sql语句。
mapper
mapper
  1. 在UserController.java中自动注入UserMapper接口的代理对象,并在getById方法中调用这个对象的getById方法,输出结果。
image
image
  1. 重新启动程序,访问http://localhost:8848/user?id=30open in new window 观察返回值是否为JSON格式。
image
image

需求2:查询名字叫 陆雪琪的用户,返回浏览器

点击查看详细步骤
  1. 在UserMapper接口中,创建selectByName方法,并且在方法上添上注解@Select,写上sql语句。
image
image
  1. 在UserController.java中自动注入UserMapper接口的代理对象,并在selectByName方法中调用这个对象的selectByName方法,输出结果。

  2. 重新启动程序,访问http://localhost:8080/selectbyname?name=陆雪琪open in new window 观察返回值是否为JSON格式。

需求3:爱好中含有 "法术" 的用户,返回浏览器

点击查看详细步骤
  1. 在UserMapper接口中,创建selectLikeName方法,并且在方法上添上注解@Select,写上sql语句。

  2. 在UserController.java中自动注入UserMapper接口的代理对象,并在selectLikeName方法中调用这个对象的selectLikeName方法,输出结果。

  3. 重新启动程序,访问http://localhost:8080/selectlikename?hobby=法术open in new window 观察返回值是否为JSON格式。

点击查看流程open in new window

需求4:删除用户为 韩立的用户,返回 ok 字符串

点击查看详细步骤
  1. 在UserMapper接口中,创建deleteByName方法,并且在方法上添上注解@Delete,写上sql语句。

  2. 在UserController.java中自动注入UserMapper接口的代理对象,并在deleteByName方法中调用这个对象的deleteByName方法,输出结果。

  3. 重新启动程序,访问http://localhost:8080/deleteByName?name=韩立open in new window 观察返回值是否为JSON格式。

需求5:将id为36的用户,hobby修改为 听焱哥上课,返回 ok 字符串

点击查看详细步骤
  1. 在UserMapper接口中,创建updateById方法,并且在方法上添上注解@Update,写上sql语句。

  2. 在UserController.java中自动注入UserMapper接口的代理对象,并在updateById方法中调用这个对象的updateById方法,输出结果。

  3. 重新启动程序,访问http://localhost:8080/updatebyid?id=36&hobby=听焱哥上课open in new window 观察返回值是否为JSON格式。

总结

课堂作业

  1. 如果你完成上面的5个需求,那么你掌握了SpringBoot集成Mybatis的操作 🎤

4. 软件开发整体介绍 🍐

软件开发整体介绍

作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程, 以及软件开发过程中涉及到的岗位角色,角色的分工、职责, 并了解软件开发中涉及到的三种软件环境。那么这一小节,我们将从 三个方面,来整体上介绍一下软件开发。

软件开发流程 🍐

image
image
岗位/角色职责/分工
项目经理对整个项目负责,任务分配、把控进度
产品经理进行需求调研,输出需求调研文档、产品原型等
UI 设计师根据产品原型输出界面效果图
架构师项目整体架构设计、技术选型等
开发工程师功能代码实现
测试工程师编写测试用例,输出测试报告
运维工程师软件环境搭建、项目上线

角色分工是在一个项目组中比较标准的角色分工, 但是在实际的项目中, 有一些项目组由于人员配置紧张, 可能并没有专门的架构师或测试人员, 这个时候可能需要有项目经理或者程序员兼任

总结

课堂作业

  1. 请回答软件的开发流程是什么?🎤
  2. 请回答软件开发过程中,有哪些角色,以及实际工作中这些角色都需要招聘吗?
  3. 测试环境和生产环境有什么区别?