hero image

Java在线笔记

知识最好的留存率(90%)是教授他人

Java基础入门
Java基础入门
Java基础进阶
Java基础进阶
javaweb2023
spring/boot/jwt/构建工具/Maven/mybatis
基础框架2021
spring/mvc/boot/mp/Maven
基础服务框架
Cloud/Nacos/微服务/Docker/RabbitMQ
苍穹外卖
/boot/Swagger/小程序/支付/echart/poi
瑞吉外卖笔记
一个类似美团的外卖网站(最新项目)
瑞吉外卖优化篇笔记
Git/Linux/Redis/Nginx/读写分离
惠客CRM
客户管理系统
科大
科大实训
信息职院
信息职院实训
工业职院
工业职院实训
传智健康
dubbo
Part00

Part00

课程内容

  • 环境、开发软件安装 ✏️
  • SpringBoot 初体验入门 ✏️
  • Mybatis 初体验入门 ✏️

1. 环境、软件安装

提示信息

  1. 资料下载地址

HM大约 22 分钟JDKIdeaMavenMySQLNavicatSpringBootMybatisPlusMybatisRedis
瑞吉外卖-day01

瑞吉外卖-day01

课程内容

  • 软件开发整体介绍 🍐
  • 瑞吉外卖项目介绍 🍐
  • 管理端
    • 开发环境搭建
    • 后台登录功能开发
    • 后台退出功能开发
    • 完善登录功能

1. 软件开发整体介绍 🍐

软件开发整体介绍

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


HM大约 26 分钟瑞吉外卖软件开发流程登录
瑞吉外卖-day05

瑞吉外卖-day05

课程内容

  • 管理端
    • 新增套餐
    • 套餐分页查询
    • 删除套餐
  • 用户端(app 端)
    • 短信发送
    • 手机验证码登录

1. 新增套餐

1.1 需求分析

套餐就是菜品的集合。


HM大约 38 分钟瑞吉外卖套餐模块短信发送手机验证码
Spring AOP实现原理

Spring AOP实现原理

1. 代理模式

程序为什么要代理?

  • 说法1:原始对象如果觉得本类上的工作太多,可以通过代理来转移部分职责。
  • 说法2:如果不改原始类的代码的情况下,可以使用代理对原始对象的功能进行增强
  • 特点:原始对象的什么方法想被增强(被代理),代理类一定要有对应的方法。

代理模式UML 类图如下

image-20191011005747639
image-20191011005747639

类图中虚线箭头表示接口实现

菱形和箭头表示组合(组合:部分和整体的关系,并且生命周期是相同的。例如:人与手)

具体参考uml类图

代理类实现了被代理类的接口,同时与被代理类是组合关系。下面看一下代理模式的实现


HM大约 8 分钟SpringAOP设计模式AOP代理模式
Limit限流

Limit限流

1. 定义 Limit 注解

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Limit {

    // 资源名称,用于描述接口功能
    String name() default "";

    // 资源 key
    String key() default "";

    // key prefix
    String prefix() default "";

    // 时间的,单位秒
    int period();

    // 限制访问次数
    int count();

    // 限制类型
    LimitType limitType() default LimitType.CUSTOMER;
}

HM大约 1 分钟AOPAOP限流
AOP打印日志

AOP打印日志

需求分析

在SpringBoot中使用自定义注解、aop切面打印web请求日志。主要是想把controller的每个request请求日志收集起来,调用接口、执行时间、返回值这几个重要的信息存储到数据库里,然后可以使用火焰图统计接口调用时长,平均响应时长,以便于我们对接口的调用和执行情况及时掌握。

解决方案:

  1. 使用AOP的环绕通知(around)进行方法进行增强
  2. 使用自定义注解用来标注那些方法需要增强(非表达式)

HM大约 1 分钟AOPAOP日志自定义注解
SpringAOP

SpringAOP

1. 什么是AOP

AOP既面向切面编程,官方定义

面向切面—— Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

AOP可以分离系统的业务逻辑和系统服务(日志,安全等),这个功能我想是不难明白(原理是使用了代理模式),但关键是为什么要将这两种进行分离呢?或者说这样做有什么好处?


HM大约 4 分钟AOPAOP日志
AOP实现防重复提交

AOP实现防重复提交

1. 需求

需求分析

由于网络加载是比较耗时的操作,如果前端没有控制防重复点击,那么请求就会添加到服务端中。这样就会导致数据库中出现重复数据。

我们可以通过自定义注解@RepeatSubmit,实现防重复提交

2. 实现步骤

3. 使用方法

在接口方法上添加@RepeatSubmit注解即可,注解参数说明:


HM大约 4 分钟AOPAOP重复提交自定义注解
day01——面向对象高级

day01——面向对象高级

学习目标

  • 静态关键字static 🍐 ✏️
    • 修饰成员变量
    • 修饰成员方法
    • 注意事项
  • 设计模式 🍐
    • 单例模式
      • 饿汉式
      • 懒汉式
  • 继承 🍐✏️❤️
    • 概念🍐
    • 好处🍐
    • 权限修饰符✏️
    • 方法重写✏️

HM大约 31 分钟JavaSE进阶static设计模式继承
2
3
4
5
...
39