JAVA WEB实用与优化技巧
文章平均质量分 94
通过阅读本专题,你将掌握一系列实用工具和技术,提升Java Web开发的能力,并学习到如何优化和提升Web应用的性能。无论你是初学者还是有经验的开发者,本专题都将为你提供有价值的知识和实践经验。
澄风
平淡出奇
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
TKMyBatis 全解析:从实战用法到原理源码,简化 MyBatis 单表开发利器
TKMyBatis是MyBatis的通用Mapper框架,通过封装单表CRUD操作显著减少重复代码。它兼容JPA注解,支持条件构造和多种数据库,具有轻量无侵入特性。核心使用流程包括:引入依赖(需注意版本兼容)、实体类注解配置(重点标注主键和表映射)、继承通用Mapper接口(如Mapper和MySqlMapper),并使用专属@MapperScan扫描。TKMyBatis适用于单表开发场景,相比MyBatis-Plus更轻量专注,是企业级开发中提升效率的利器。原创 2026-01-29 10:15:18 · 143 阅读 · 0 评论 -
Redis ZSet+Lua脚本+SpringBoot实战:滑动窗口限流方案从原理到落地
本文介绍了基于Redis ZSet、Lua脚本和SpringBoot的滑动窗口限流方案。相比固定窗口限流,滑动窗口通过划分时间片解决了边界漏洞问题,精度更高。Redis ZSet的有序特性适合存储请求时间戳,Lua脚本确保限流操作的原子性,SpringBoot则提供工程化实现。方案详细拆解了核心逻辑,包括ZSet指令设计、Lua脚本编写以及SpringBoot集成步骤,并提供了完整的可复用代码,兼顾理论深度与实战性,帮助开发者快速落地高精度限流功能。原创 2026-01-28 14:50:48 · 795 阅读 · 0 评论 -
MyBatis实战技巧 - MySQL的JSON字段类型转换List<xxxVO>报错问题 - 从分析到落地方案
若项目为纯MyBatis(未集成MyBatis-Plus),可自定义通用泛型处理器,一次编写可复用所有嵌套List场景。本次问题的核心是MyBatis默认JSON解析规则与自定义嵌套集合类型不匹配,且报错时机因执行阶段差异延后。解决问题的关键的是“提前干预类型转换”,让MyBatis在查询阶段就完成JSON到目标Java类型的反序列化。实际开发中,优先选择MyBatis-Plus注解方案,高效简洁;纯MyBatis项目可采用自定义泛型处理器,通用可复用。原创 2026-01-29 09:49:19 · 382 阅读 · 0 评论 -
30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <1> 5分钟快速创建一个springboot web项目
我们开发项目的第一步就是要搭建一个适合业务系统技术栈的脚手架,那么今天就来介绍如何快速搭建一个适合我们的万能轻量级的脚手架,包含前后端的开发,服务监控,接口管理等等。技术栈采用用Springboot 3.4.1 + druid + spring task + mybatis + mybatis generator + swagger(新版swaggerUI) + mysql + SpringbootAdmin + vue2 + element.原创 2025-01-14 17:40:07 · 1668 阅读 · 0 评论 -
30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <2> 5分钟集成好最新版本的开源swagger ui --- knife4j,并使用ui操作调用接口
集成 `knife4j` 非常便捷,只需要加入官方依赖,然后简单配置即可。这里只展示简单的配置,更多的配置可参考 `knife4j` 官网文档进行修改。原创 2025-01-15 09:51:23 · 639 阅读 · 0 评论 -
30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <3>5分钟集成好druid并使用druid自带监控工具监控sql请求
Druid 是一个 JDBC 组件库,包含数据库连接池、SQL Parser 等组件, 被大量业务和技术产品使用或集成,经历过最严苛线上业务场景考验,是你值得信赖的技术产品。这篇文章将会介绍如何继承druid并且配置好druid监控。原创 2025-01-15 14:08:58 · 465 阅读 · 0 评论 -
30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <4> 5分钟集成好mybatisplus并使用mybatisplus generator自动生成代码
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这篇文章将会讲解如何快速集成mybatis-plus并且使用代码生成工具自动生成代码。原创 2025-01-15 14:52:58 · 325 阅读 · 0 评论 -
30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <5> 5分钟集成好caffeine并使用注解操作缓存
在 Spring Boot 中,注解操作缓存的原理基于 Spring 的缓存抽象 (Spring Cache Abstraction)。使用缓存注解时,Spring 会自动处理与缓存相关的逻辑,而开发者只需要专注于业务代码。常用的缓存注解有 @Cacheable、@CachePut 和 @CacheEvict。原创 2025-01-15 17:58:32 · 1166 阅读 · 0 评论 -
30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <6> 5分钟集成好前端页面
**注意: 静态资源能访问的前提是权限要放开,配置的拦截器、filter、shiro、spring security都要把静态资源的权限放开才行**1. 把直接丢进resources/public目录就能直接访问了2. resoucehandler 配置前端访问目录和路由映射3. thymeleaf 框架4. 模版引擎驱动前端页面原创 2025-01-16 09:53:48 · 368 阅读 · 0 评论 -
Logback 看完这篇再也不纠结
logback的基本架构足够通用,可以应用于不同的环境。目前,logback分为三个模块:logback-core,logback-classic和logback-access。core模块是其它两个模块的基础,classic模块继承core模块,classic模块相对log4j版本有显著的改进,logback-classic天生实现了SLF4J API,所以你可以在logback和其他日志框架之间自由切换,比如log4j和JDK1.4引入的JUL(java.util.logging)。..........原创 2022-06-14 14:41:17 · 1851 阅读 · 0 评论 -
Springboot 注解缓存使用教程
Spring Boot 提供了强大的缓存抽象,开发者可以通过注解快速实现缓存功能,从而提高系统性能。本教程将全面介绍 Spring Boot 提供的缓存相关注解及其作用,并结合示例讲解实际应用。原创 2025-01-15 16:24:43 · 804 阅读 · 0 评论 -
Maven 如何引入非镜像中外部Jar包的方法以及如何将本地jar包推送到maven远程仓库中?
项目开发过程中可能会需要引入一些非maven仓库的存在的jar包,比如jar是ant打包过来的。这个时候maven上传包到仓库可能会很困难,就绪要在项目中手动去引用jar包。原创 2022-06-28 13:39:29 · 2205 阅读 · 0 评论 -
如何排查JVM线程死锁和JAVA应用OOM问题?
控制javacore的输出有两种方式,第一种是通过`kill -3 [pid]`来输出java当前运行时的javacore线程信息。第二种是通过jstack命令来输出Javacore文件。先面我们分开讲解两种方式如何操作。第三种方式就是容器自带脚本,在OOM或CPU资源占用过多的情况下会自动输出javacore到指定目录,比如说websphere等等容器。原创 2024-06-04 23:55:58 · 827 阅读 · 1 评论 -
手把手教你如何一键发布项目到服务器
我们平时都是走jenkins或者是openshift这种k8s平台来打包java应用,但对于小项目来说部署jenkins和openshift消耗的精力很多,并且如果我们是小型项目的话,在测试环境根本用不到这种发布方式,特别是一个人开发后端的情况我们希望服务器能够快速响应发布,快速进行调试。那么如何通过本地命令直接将应用发布到服务器呢?比如:本地运行deploy.bat 直接就能发布项目到测试环境,且所有的流程都是自动化的...原创 2024-06-03 21:32:34 · 602 阅读 · 0 评论 -
手把手叫你封装一个适用于Springboot的Swagger UI组件
Swagger 原生UI存在的缺点① 不够方便直观swagger ui 布局是上下瀑布式的,比如我访问完A接口,想访问B接口,访问完B接口想继续访问A接口就必须往上翻,接口少还好操作。接口多的话来回就很烦。② 请求的参数没有缓存③ 不够美观④ 如果是JWT 无状态登录,Swagger使用起来就没有那么丝滑了,因为JWT无状态登录这种需要每次在请求的Header中带上TOKEN,Swagger可没那么只能给你登录接口返回的token带过去,这样就导致无状态session的情况下Swagg...原创 2024-05-21 17:10:09 · 602 阅读 · 0 评论 -
Nginx运维命令总结及常见问题排查和解决方案
Nginx 如何忽略非标准http头检测?Nginx websocket代理Nginx 临时缓存不够导致下载文件失败Nginx 没有临时缓存目录权限导致下载文件失败Nginx非root用户启动无法使用80端口或者报无权限异常路由重写怎么配置?nginx 根据ip hash负载怎么配置?Nginx 日志输出怎么配置?Nginx 如何替换Html插入变量?原创 2024-03-07 13:42:43 · 2762 阅读 · 0 评论 -
学习Maven看完这篇就够了
Maven 是一个强大的Java项目管理工具,由Jason van Zyl在2002年创建,最初是为了简化Apache Jakarta Turbine项目构建过程而设计的。它后来成为Apache软件基金会的一个项目,并迅速成为Java开发的标准工具之一。Maven的核心理念是通过项目对象模型(Project Object Model,简称POM)来管理和构建软件项目。原创 2024-06-02 18:07:24 · 517 阅读 · 0 评论
分享