学习资料
前情提要
在MySQL原理学习中,经常需要用到一些大数据量的表来支撑理论学习,因此不免会陷入"造数据"的烦恼,虽然可以借助一些函数或者程序设计(例如hutool工具类)的方式来动态生成一些可用的数据,但还需要进一步满足对大数据量处理的需求,从一开始的1w、10w、100w的数据测试过程会发现可能批量插入几万条数据借助存储过程可能就几分钟忍忍就过去了,但是对于更大的数据量批量插入操作却直接断层拉开时间成本,可能需要更长的时间去完成批量操作
- MySQL服务环境:MySQL8.0.21(核心测试)、MySQL5.7.44(辅助对照)
- IDEA(JAVA程序构建,用于批量生成数据)
- 客户端环境:Navicat、Windows 10(16G)
Web应用程序开发
1.解决Spring MVC中的HttpMediaTypeNotAcceptableException异常
在使用Springboot构建项目,基于SpringMVC开发web应用程序可能会遇到HttpMediaTypeNotAcceptableException异常:
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
参考代码
noob-demo=》springboot-demo =》springboot-demo-watermark
学习核心
- 水印实现方案策略
- 水印兼容性问题处理
- 本地开发 VS 线上部署 (常见水印问题处理)
ITEXT水印文本实现(普通水印、铺满策略),根据图片(不同图片格式:PNG、BMP、JPG、GIF等进行适配)、PDF(ITEXT策略、生成PDF的时候写入水印)
基本概念
Hutool定义
Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的”。
Hutool 中的工具方法来自每个用户的精雕细琢,它涵盖了 Java 开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
参考代码
noob-demo=》java-demo=》HelloWorld
IDEA下载安装
IDEA安装下载:官网安装下载(需要注册码),选择破解版安装(公众号软件管家:下载最新版本IDEA)
下载安装一般不选择关联(否则其他一些文件关联默认用idea打开,可能会比较慢,一般正常文本可以用文本编辑器查看即可)
整合步骤说明
【1】注册支付宝账号开发者平台,创建web应用并配置
【2】创建springboot项目与支付宝沙箱整合,前后端配置
【3】使用natapp进行内网穿透(配置回调url映射路径)
【4】项目测试配置
支付宝账号开发者平台配置
支付宝账号开发者平台 =》网页/移动应用 =》创建应用
POM飘红处理
Spring Boot整合Redisson和Redis的主要区别在于Redisson提供了更高级的功能和抽象,它不仅包含了Redis的基本操作,还提供了分布式锁、分布式集合、可扩展的事件发布/订阅模式等。
pom.xml依赖引入
<!-- 引入redission -->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.16.2</version>
</dependency>
系统运行一段时间后很慢如何排查?
如果说程序上线一段时间后运行特别慢,则考虑是否同一时间段出现大量请求导致阻塞(❌如果是在请求正常的情况下)
排除思路:由外到内,结合系统日志跟踪,排除外部原因,然后跟踪内部因素
可以结合实际业务场景从多个维度去思考:关注点:监控排查、代码排查、数据库分析、系统资源、外部依赖、应用架构
- 性能监控和排查(linux指令查看系统运行、宝塔面板查看):查看程序的CPU、内存、磁盘I/O和网络使用情况,随后跟踪线上日志定位异常信息