黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(上)准备工作、部门管理

本文主要是介绍黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(上)准备工作、部门管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、准备工作

1.明确需求

根据产品经理绘制的页面原型,对部门和员工进行相应的增删改查操作。

2.环境搭建

将使用相同配置的不同项目作为Module放入同一Project,以提高相同配置的复用性。

  • 准备数据库表(dept, emp)=== 资料中包含了创建表的代码
  • 创建springboot工程,引入对应的起步依赖
  • 配置application.properties中引入mybatis的配置信息,准备对应的实体类
  • 准备对应的Mapper(Dao===数据访问),Service(接口,实现类===逻辑处理),Controller(接受请求、响应数据)基础结构

👆添加相应依赖

IDEA:*.properties文件中文乱码解决方案_xx.properties注释中文乱码-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/u010285974/article/details/107102644👆修改配置文件中的中文乱码情况

  • pojo:存放的是两个实体类,实体类中的属性(驼峰命名)和表结构的字段(下划线分割)是一一对应的;
  • controller:控制层,接受前端发送的请求,对请求进行处理,并响应数据;
  • service:业务逻辑层,准备两个接口,并准备了两个接口的实现类,在实现类上面加了注解@Service,表示将当前实现类交给IOC容器管理,成为IOC容器里的bean对象;
  • Mapper:在mapper接口上面加上注解@Mapper。

3.开发规范

基于当前最主流的前后端分离模式进行开发。

前端开发人员将打包好的前端工程部署在ngix服务器上运行,后端开发人员将打包好的服务端程序运行在Tomcat服务器上。

前端向后端请求数据,再有后端给前端响应数据。

所以前后端在开发过程中需要共同遵守【接口文档】(根据产品经理绘制的页面原型和需求制作)进行开发。

本案例的前后端交互是根据Restful风格的接口进行交互的。

  • REST(REpresentational State Transfer),表述性状态转换,是一种软件架构风格。
  • 前后端交互统一响应结果Result

整体开发流程:

查明页面原型明确需求==》阅读接口文档==》思路分析==》接口开发==》接口测试==》前后端联调


二、部门管理

1.查询部门

需求分析:

查询全部数据(由于部门数据比较少,不考虑分页)

思路流程⭐:

前端发起一个查询部门的请求

=====》

被DeptController处理

  1. 接收请求;
  2. 调用service查询部门;
  3. 响应(封装在统一响应结果Result中相应给前端)

=====》

DeptService进行逻辑处理(调用mapper接口查询)

=====》

DeptMapper数据处理(selec * from dept;)

=====》

查询访问数据库

代码编写:

1)@Slf4j:定义日志记录对象

注意:项目开发过程中,尽量不要使用sout输出日志,使用日志记录框架记录日志。

private static Logger log = LoggerFactory.getLogger(DeptController.class);

固定代码,lombok为了简化代码书写,可以直接增加注释@Slf4j,定义日志记录对象

2)@GetMapping:限定接口请求方式为GET

3)@Autowird:依赖注入

当标注的属性是接口时,注入的是这个接口的实现类

查询操作:

前后端联调:

解压打包文件到没有中文路径的目录下,双击ngix.exe运行,然后打开设备管理器==详细信息里面查看ngix是否正常运行==访问测试:localhost:90访问

按下F12,打开浏览器的开发者工具,抓取这次网络请求

2.删除部门

需求分析:

弹出确认框 , 提示 "您确定要删除该部门的信息吗 ?"  如果选择确定 , 则删除该部门 , 删除成功后 , 重新刷新列表页面。  如果选择了取消,则不执行任何操作。

代码编写:

1)@PathVariable:获取路径参数

将URL中占位符参数绑定到Controller处理方法的输入参数中

表示获取路径变量中的id,然后绑定给方法中的id参数

DeptController(设置url,接收响应)==>DeptService(接口)==>DeptServiceImpl(实现类)==>DeptMapper(数据库操作)

删除操作:

前后端联调:

3.新增部门

需求分析:

1.1 点击新增部门,会打开新增部门的页面。 

1.2 部门名称,必填,唯一,长度为2-10位。

代码编写:

1)@RequestBody:接收json参数

新增结果:

请求👇


响应👇

前后端联调:

4.Controller优化

可以看出上面的三种响应的地址有重复,可以将/depts抽取出来,变成公共地址,将后面的地址中有公共部分的地方进行删除

5.修改部门(自行实现)

需求分析:

根据id查询到数据然后再修改部门

代码编写:

结合查询和删除操作

修改结果:

测试时,需要注意注释掉删除部门操作,因为二者的url一致,会有冲突。

前后端联调:

这篇关于黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(上)准备工作、部门管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/589239

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We