瑞吉外卖-Day03
瑞吉外卖-Day03课程内容
公共字段自动填充
新增分类
分类信息分页查询
删除分类
修改分类
1. 公共字段自动填充1.1 问题分析前面我们已经完成了后台系统的员工管理功能的开发,在新增员工时需要设置创建时间、创建人、修改时间、修改人等字段,在编辑员工时需要设置修改时间、修改人等字段。这些字段属于公共字段,也就是也就是在我们的系统中很多表中都会有这些字段,如下:
而针对于这些字段,我们的赋值方式为:
A. 在新增数据时, 将createTime、updateTime 设置为当前时间, createUser、updateUser设置为当前登录用户ID。
B. 在更新数据时, 将updateTime 设置为当前时间, updateUser设置为当前登录用户ID。
目前,在我们的项目中处理这些字段都是在每一个业务方法中进行赋值操作,如下:
如果都按照上述的操作方式来处理这些公共字段, 需要在每一个业务方法中进行操作, 编码相对冗余、繁琐,那能不能对于这些公共字段在某个地方统一处理,来简化开发呢?
答案是可以的,我们使用Mybatis Plus提供的公共字段自动填充功 ...
瑞吉外卖-Day02
瑞吉外卖-Day02课程内容
完善登录功能
新增员工
员工信息分页查询
启用/禁用员工账号
编辑员工信息
1. 完善登录功能1.1 问题分析前面我们已经完成了后台系统的员工登录功能开发,但是目前还存在一个问题,接下来我们来说明一个这个问题, 以及如何处理。
1). 目前现状
用户如果不登录,直接访问系统首页面,照样可以正常访问。
2). 理想效果
上述这种设计并不合理,我们希望看到的效果应该 是,只有登录成功后才可以访问系统中的页面,如果没有登录, 访问系统中的任何界面都直接跳转到登录页面。
那么,具体应该怎么实现呢?
可以使用我们之前讲解过的 过滤器、拦截器来实现,在过滤器、拦截器中拦截前端发起的请求,判断用户是否已经完成登录,如果没有登录则返回提示信息,跳转到登录页面。
1.2 思路分析
过滤器具体的处理逻辑如下:
A. 获取本次请求的URI
B. 判断本次请求, 是否需要登录, 才可以访问
C. 如果不需要,则直接放行
D. 判断登录状态,如果已登录,则直接放行
E. 如果未登录, 则返回未登录结果
如果未登录,我们需要给前端返回什么样的 ...
瑞吉外卖-Day01
瑞吉外卖-Day01课程内容
软件开发整体介绍
瑞吉外卖项目介绍
开发环境搭建
后台登录功能开发
后台退出功能开发
1. 软件开发整体介绍作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程, 以及软件开发过程中涉及到的岗位角色,角色的分工、职责, 并了解软件开发中涉及到的三种软件环境。那么这一小节,我们将从 软件开发流程、角色分工、软件环境 三个方面,来整体上介绍一下软件开发。
1.1 软件开发流程
1). 第1阶段: 需求分析
完成产品原型、需求规格说明书的编写。
产品原型,一般是通过网页(html)的形式展示当前的页面展示什么样的数据, 页面的布局是什么样子的,点击某个菜单,打开什么页面,点击某个按钮,出现什么效果,都可以通过产品原型看到。
需求规格说明书, 一般来说就是使用 Word 文档来描述当前项目有哪些功能,每一项功能的需求及业务流程是什么样的,都会在文档中描述。
2). 第2阶段: 设计
设计的内容包含 产品设计、UI界面设计、概要设计、详细设计、数据库设计。
在设计阶段,会出具相关的UI界面、及相关的设计文档。比如数据库设计,需要设计当前 ...
Maven高级
Maven高级今日目标
理解并实现分模块开发
能够使用聚合工程快速构建项目
能够使用继承简化项目配置
能够根据需求配置生成、开发、测试环境,并在各个环境间切换运行
了解Maven的私服
1,分模块开发1.1 分模块开发设计(1)按照功能拆分
我们现在的项目都是在一个模块中,比如前面的SSM整合开发。虽然这样做功能也都实现了,但是也存在了一些问题,我们拿银行的项目为例来聊聊这个事。
网络没有那么发达的时候,我们需要到银行柜台或者取款机进行业务操作
随着互联网的发展,我们有了电脑以后,就可以在网页上登录银行网站使用U盾进行业务操作
再来就是随着智能手机的普及,我们只需要用手机登录APP就可以进行业务操作
上面三个场景出现的时间是不相同的,如果非要把三个场景的模块代码放入到一个项目,那么当其中某一个模块代码出现问题,就会导致整个项目无法正常启动,从而导致银行的多个业务都无法正常班理。所以我们会==按照功能==将项目进行拆分。
(2)按照模块拆分
比如电商的项目中,有订单和商品两个模块,订单中需要包含商品的详细信息,所以需要商品的模型类,商品 ...
MyBatisPlus
MyBatisPlus今日目标
基于MyBatisPlus完成标准Dao的增删改查功能
掌握MyBatisPlus中的分页及条件查询构建
掌握主键ID的生成策略
了解MyBatisPlus的代码生成器
1,MyBatisPlus入门案例与简介这一节我们来学习下MyBatisPlus的入门案例与简介,这个和其他课程都不太一样,其他的课程都是先介绍概念,然后再写入门案例。而对于MyBatisPlus的学习,我们将顺序做了调整,主要的原因MyBatisPlus主要是对MyBatis的简化,所有我们先体会下它简化在哪,然后再学习它是什么,以及它帮我们都做哪些事。
1.1 入门案例
MybatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提供效率。
开发方式
基于MyBatis使用MyBatisPlus
基于Spring使用MyBatisPlus
==基于SpringBoot使用MyBatisPlus==
SpringBoot刚刚我们学习完成,它能快速构建Spring开发环境用以整合其他技术,使用起来是 ...
SpringBoot
SpringBoot今日目标:
掌握基于SpringBoot框架的程序开发步骤
熟练使用SpringBoot配置信息修改服务器配置
基于SpringBoot的完成SSM整合项目开发
1,SpringBoot简介SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来==简化== Spring 应用的==初始搭建==以及==开发过程==。
使用了 Spring 框架后已经简化了我们的开发。而 SpringBoot 又是对 Spring 开发进行简化的,可想而知 SpringBoot 使用的简单及广泛性。既然 SpringBoot 是用来简化 Spring 开发的,那我们就先回顾一下,以 SpringMVC 开发为例:
创建工程,并在 pom.xml 配置文件中配置所依赖的坐标
编写 web3.0 的配置类
作为 web 程序,web3.0 的配置类不能缺少,而这个配置类还是比较麻烦的,代码如下
编写 SpringMVC ...
SpringMVC_day02
SpringMVC_day02今日内容
完成SSM的整合开发
能够理解并实现统一结果封装与统一异常处理
能够完成前后台功能整合开发
掌握拦截器的编写
1,SSM整合前面我们已经把Mybatis、Spring和SpringMVC三个框架进行了学习,今天主要的内容就是把这三个框架整合在一起完成我们的业务功能开发,具体如何来整合,我们一步步来学习。
1.1 流程分析(1) 创建工程
创建一个Maven的web工程
pom.xml添加SSM需要的依赖jar包
编写Web项目的入口配置类,实现AbstractAnnotationConfigDispatcherServletInitializer重写以下方法
getRootConfigClasses() :返回Spring的配置类->需要==SpringConfig==配置类
getServletConfigClasses() :返回SpringMVC的配置类->需要==SpringMvcConfig==配置类
getServletMapping ...
SpringMVC_day01
SpringMVC_day01今日内容
理解SpringMVC相关概念
完成SpringMVC的入门案例
学会使用PostMan工具发送请求和数据
掌握SpringMVC如何接收请求、数据和响应结果
掌握RESTful风格及其使用
完成基于RESTful的案例编写
SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装。
对于SpringMVC我们主要学习如下内容:
SpringMVC简介
==请求与响应==
==REST风格==
==SSM整合(注解版)==
拦截器
SpringMVC是处于Web层的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。
REST是一种软件架构风格,可以降低开发的复杂性,提高系统的可伸缩性,后期的应用也是非常广泛。
SSM整合是把咱们所学习的SpringMVC+Spr ...
Spring_day03
Spring_day03今日目标
理解并掌握AOP相关概念
能够说出AOP的工作流程
能运用AOP相关知识完成对应的案例编写
重点掌握Spring的声明式事务管理
1,AOP简介前面我们在介绍Spring的时候说过,Spring有两个核心的概念,一个是IOC/DI,一个是AOP。
前面已经对IOC/DI进行了系统的学习,接下来要学习它的另一个核心内容,就是==AOP==。
对于AOP,我们前面提过一句话是:==AOP是在不改原有代码的前提下对其进行增强。==
对于下面的内容,我们主要就是围绕着这一句话进行展开学习,主要学习两方面内容AOP核心概念,AOP作用:
1.1 什么是AOP?
AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构。
OOP(Object Oriented Programming)面向对象编程
我们都知道OOP是一种编程思想,那么AOP也是一种编程思想,编程思想主要的内容就是指导程序员该如何编写程序,所以它 ...
Spring_day02
Spring_day02今日目标
掌握IOC/DI配置管理第三方bean
掌握IOC/DI的注解开发
掌握IOC/DI注解管理第三方bean
完成Spring与Mybatis及Junit的整合开发
1,IOC/DI配置管理第三方bean前面所讲的知识点都是基于我们自己写的类,现在如果有需求让我们去管理第三方jar包中的类,该如何管理?
1.1 案例:数据源对象管理在这一节中,我们将通过一个案例来学习下对于第三方bean该如何进行配置管理。
以后我们会用到很多第三方的bean,本次案例将使用咱们前面提到过的数据源Druid(德鲁伊)和C3P0来配置学习下。
1.1.1 环境准备学习之前,先来准备下案例环境:
创建一个Maven项目
pom.xml添加依赖
1234567<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-co ...