SpringBoot
文章平均质量分 90
Java升级之路
野生程序员
生活体验家
扎根一线
记录和分享各种技术干货,进步的路上一起努力
公众号「Java升级之路」原创作者
展开
-
耗时几个月,终于决定把原本想用于商业的系统开源了
这个项目是基于脚手架项目搭建而成,原本是帮朋友公司做的一个租赁管理系统,用来管理房态信息、办理入住等。对方没给设计图、也没有提具体需求,只是让我凭感觉来做。在项目做了几个月后,因业务调整,所以就没有后续了,想着与其直接删除还不如开源分享给大家一起讨论学习。项目虽然没有做的很完整,但是整体的数据架构还算是可以的,可以很容易进行功能完善和添加新功能。由于本人的精力有限,还有很多地方没法完善,如有感兴趣的朋友,欢迎加入一起完善,共同进步!原创 2023-05-15 14:58:46 · 1017 阅读 · 1 评论 -
Java中利用 stream 实现 mysql 的 groupBy sum Case when 语法
本文通过一次实际项目案例,记录了使用 stream的多字段groupBy 来实现类似 mysql 中 sum、case when groupBy分组等语法。如果有什么疑问或者建议,欢迎评论区留下你的独到见解~原创 2022-12-08 17:28:28 · 3036 阅读 · 0 评论 -
上传文件很费时费力?那是你没用对方式
嗨,大家好,我是希留,一个被迫致力于全栈开发的老菜鸟。传送门发布后有不少伙伴反馈,前后端分离的项目更好的上传方式是使用前端直传的方式。于是我查阅相关文档,连夜把项目里的上传方式改成前端直传了(项目的技术栈是Springboot + Vue),发现上传速度明显提升了。所以这篇文章就来说说,前端直传的方式应该怎么弄呢?原创 2022-11-23 10:08:22 · 631 阅读 · 0 评论 -
文件上传,你还存储在应用服务器?
嗨,大家好,我是希留,一个被迫致力于全栈开发的老菜鸟。一般项目开发中都会有文件、图片、视频等文件上传并能够访问的场景。要实现这样的场景,要么把文件存储在应用服务器上,要么搭建文件服务来存储。但是这两种方式也有不少的缺点,增加运维的成本。因此,追求用户体验的项目可能会考虑使用第三方的云服务来实现存储,目前市场上主流的厂商有:七牛云、阿里云OSS、腾讯云COS等,具体采用哪种存储方案还需结合项目的规模、成本等因素,综合考量。因为我的是腾讯云的服务器,所以就直接开通了腾讯云的COS对象存储。原创 2022-11-02 11:40:28 · 385 阅读 · 0 评论 -
【项目部署】使用Jenkins一键打包部署SpringBoot应用
嗨,大家好,我是希留,一个被迫致力于全栈开发的老菜鸟。一般而言,一个项目部署的由:拉取代码->构建->测试->打包->部署等过程组成,如果我们经常需要部署项目,特别是在微服务时代,服务特别多的情况下,不停的测试打包部署,那估计得有个人一整天专门做这事了,而这事又是繁琐的重复无意义的,所以就需要一套能够持续集成、持续交付、持续部署的自动化构建流程。Jenkins是开源CI&CD软件领导者,提供超过1000个插件来支持构建、部署、自动化,满足任何项目的需要。原创 2022-09-27 15:02:11 · 1485 阅读 · 1 评论 -
登录校验之滑块验证码完整实现(vue + springboot)
嗨,大家好,我是希留。验证码一直是各类网站登录和注册的一种校验方式,是用来防止有人恶意使用脚本批量进行操作从而设置的一种安全保护方式。随着近几年技术的发展,人们对于系统安全性和用户体验的要求越来越高,大多数网站系统都逐渐采用行为验证码来代替传统的图片验证码。今天这篇文章就来记录一下,我是如何实现从前端、到后端校验的整个流程的。原创 2022-09-08 09:35:15 · 20462 阅读 · 57 评论 -
优雅的实现EasyPoi动态导出列的两种方式
嗨,大家好,我是希留。项目里使用的是EasyPoi来处理导入导出功能的。近日因业务需求调整,一些导出功能的导出列需要根据不同的条件动态导出。一开始为了图方便,使用的是土方法,即创建多个不同的实体类,每个实体类对应不同的列。这样虽说能实现,但实在不想多复制实体类,把代码堆的和shi山一样。于是查看官方文档,里面确实提供了更加优雅的实现方式。废话不多说,开整。好了,以上就是本文的全部内容了。全文介绍了两种方式实现EasyPoi动态导出列,可以根据项目的实际情况看看能否用的上。原创 2022-09-02 14:21:11 · 9615 阅读 · 10 评论 -
小型项目如何使用异步任务管理器实现不同业务间的解耦
大家好,我是希留。在有些业务场景中,系统对于响应时间有一定的要求,而一个方法里面同步执行的业务逻辑太多势必会影响响应速度,带来不好的用户体验。比如登录时记录登录用户的访问记录、注册时发送邮件、短信通知等等场景,不需要等待处理结果之后再进行下一步操作,这时候就可以使用异步线程进行处理,这样主线程不会因为这些耗时的操作而阻塞,保证主线程的流程可以正常进行。异步任务可以通过多线程也可以通过消息队列来实现,目的都是为了实现不同业务之间的解耦,提高业务系统的响应速度。...原创 2022-08-01 16:44:39 · 442 阅读 · 0 评论 -
SpringBoot项目如何优雅的实现操作日志记录
在实际开发当中,对于某些关键业务,我们通常需要记录该操作的内容,一个操作调一次记录方法,每次还得去收集参数等等,会造成大量代码重复。我们希望代码中只有业务相关的操作,在项目中使用注解来完成此项功能。通常就是使用Spring中的AOP特性来实现的,那么在SpringBoot项目当中应该如何来实现呢?...原创 2022-07-29 15:14:40 · 3718 阅读 · 0 评论 -
消息队列RocketMQ入门实践--关键特性(三)
系列文章目录消息队列RocketMQ入门实践(一)消息队列RocketMQ入门实践(二)文章目录系列文章目录前言一、顺序消息1.1 顺序消息的原理1.2 代码示例1.3 顺序消息缺陷二、事务消息2.1 回顾什么是事务2.2 分布式事务2.3 实现原理2.4 执行流程2.读入数据总结前言嗨,大家好,我是希留。经过前面两篇文章的学习,相信大家对RocketMQ已经有了一个基本的了解了,这篇文章就来说一说RocketMQ的几个关键特性,废话不多说,咱开始吧。一、顺序消息在有的业务中,cons原创 2022-03-23 16:32:35 · 2893 阅读 · 2 评论 -
消息队列RocketMQ入门实践(二)
上一篇文章中我们介绍了RocketMQ的相关概念,以及安装部署。今天我们就来具体操作一下,在代码里面如何实现发送消息,消费消息。原创 2022-03-04 11:34:19 · 2109 阅读 · 0 评论 -
Spring注解中@Configuration、@Component、@Bean傻傻分不清
文章目录前言一、将一个类声明为 Spring 的 bean 的注解有哪些?二、@Component 和 @Configuration 注解的区别是什么?三、@Autowire 和 @Resource 注解的区别是什么?四、@Qualifier 和 @Primary 注解的区别是什么?总结前言嗨,大家好,我是希留。近日,公司里一位实习的同事在看项目代码时发现有的类使用的是@Configuration注解,有的类使用的是@Component注解,有的地方使用的是@Bean注解,有的又是使用的@Auto.原创 2022-02-23 14:42:24 · 3484 阅读 · 2 评论 -
整合SpringSecurity和JWT实现登录认证和授权
文章目录前言一、SpringSecurity是什么?二、JWT是什么?1. JWT的组成2. JWT实现认证和授权的原理三、整合步骤1. 引入相关依赖2. yml配置中加入jwt配置信息3. 添加JWT token的工具类4. 添加SpringSecurity的配置类5. 添加自定义结果处理类5.1 添加CustomAccessDeniedHandler5.2 添加CustomAuthenticationEntryPoint6. 添加JwtUser类7. 添加过滤器JwtAuthenticationTok原创 2021-09-07 17:37:49 · 4864 阅读 · 2 评论 -
配置Mybatis-plus分页插件,返回统一结果集
文章目录前言一、MyBatisPlusConfig中配置分页插件1. 分页实现的原理二、统一结果集1. 创建返回码定义类2. 创建结果集类三、编写分页接口1. 先编写查询类2. service层3. controller层4. 接口测试总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、MyBatisPlusConfig中配.原创 2021-09-02 14:19:04 · 1830 阅读 · 0 评论 -
整合Swagger生成api接口文档
文章目录前言一、Swagger介绍二、配置Swagger1. 添加依赖2. 创建Swagger2配置文件3. 重启服务查看接口4. 使用Knife4j4.1 添加依赖4.2 修改配置类4.3 重启服务查看接口5. 定义接口说明和参数说明总结前言前后端分离开发模式中,api文档是最好的沟通方式。今天就来说一说如何整合Swagger生成一套漂亮、美观、实用的接口文档。源码传送门:https://gitee.com/huoqstudy/xiliu-admin.git一、Swagger介绍原创 2021-09-01 17:54:35 · 3445 阅读 · 0 评论 -
Mybatis-plus配置自动填充和逻辑删除
文章目录前言一、配置自动填充和逻辑删除1. 实体类增加注解2. 创建元对象处理器接口3. 测试二、配置热部署1. 引入依赖2. 编译文件/项目总结前言数据库表设计的时候,一般都会设计一些所以表都需要的常见字段,例如:创建时间、修改时间、逻辑删除等字段。如果生成数据的时候需要每个实体都去set相关值,就太繁琐了。而Mybatis-plus正好提供了这种自动填充数据的功能。今天这篇文章就来讲一讲如何配置自动填充的相关功能!一、配置自动填充和逻辑删除1. 实体类增加注解查看自动生成的代原创 2021-09-01 15:38:59 · 1301 阅读 · 1 评论 -
【SpringBoot学习系列】二、SpringBoot整合Mybatis-plus实践
文章目录前言一、先初始化一个工程二、添加依赖三、配置application.properties文件四、创建代码生成器类并执行五、编写Mybatis配置类六、编写controller七、启动项目八、配置Druid连接池1. 先添加依赖2. 修改配置文件3. 修改Mybatis配置类4. 重启测试总结前言上一篇文章中我们认识了SpringBoot,并学会了创建SpringBoot项目,今天这篇文章讲述一下SpringBoot怎么整合Mybatis-plus,进行数据库的相关操作。一、先初始化一个工原创 2021-08-31 11:09:45 · 468 阅读 · 0 评论 -
【SpringBoot学习系列】一、初识SpringBoot
文章目录前言一、SpringBoot简介二、SpringBoot特性三、SpringBoot项目创建1.环境准备2.创建方式一:使用Spring Initializr 的 Web页面创建项目3.创建方式二:使用开发工具直接创建项目四、SpringBoot项目目录结构五、SpringBoot项目启动1.启动类启动2.Maven 插件启动3.java -jar 命令启动六.访问项目七.彩蛋总结前言作为Java开发,时下最流行的技术就是SpringBoot了,它以及其简便的方式,让你能够快速的进行应用开发原创 2021-08-06 09:41:39 · 642 阅读 · 1 评论 -
分布式定时任务之xxl-job实践
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2021-07-08 12:37:14 · 749 阅读 · 1 评论 -
Java创建定时任务的几种方式,你还不会?
文章目录前言一、单机环境下创建1.使用TimerTask创建定时任务2.使用线程池创建定时任务3.使用spring内置定时任务@Scheduled 注解二、分布式环境下创建1.使用Quartz框架1.1 Spring集成方式1.1.1 添加pom依赖1.1.2 初始化Quartz的表1.1.3 初始化自定义的定时任务表1.1.4 编写配置类1.1.5 编写自定义的工厂类1.1.6 编写一个测试任务调度类1.1.7 编写一个任务调度工具类1.1.8 编写controller类1.1.9 编写service类.原创 2021-07-03 19:12:31 · 3309 阅读 · 3 评论 -
SpringBoot项目使用EasyPoi实现导入导出,就是这么的丝滑
文章目录前言一、EasyPoi简介二、EasyPoi主要功能三、EasyPoi注解1.@Excel2.@ExcelCollection四.ImportParams 参数介绍下五、开始使用1.添加依赖2.读入数据总结前言Hi,大家好,我是希留。在项目的开发工程中,经常有导入导出数据的常见功能场景,Apache的POI是处理导入导出中最常用的,但是其原生的用法太复杂,很繁琐,总是在Copy… ,无意间发现一款简单粗暴的神器EasyPoi,EasyPoi也是基于POI的,在SpringBoot中也是做了很原创 2021-06-24 22:23:47 · 3531 阅读 · 1 评论 -
一篇文章,带你了解微信扫码登录
文章目录前言一、功能背景二、扫码登录原理1.基本原理三、实现效果图1.登录页2.点击微信账号登录3.已绑定微信的账号4.未绑定微信号的账号四、代码实现1.准备工作2.编写代码总结前言Hi,大家好,我是希留。很多PC端的网站都有使用微信扫码登录的功能,不需要输入用户名和密码,打开手机微信扫一扫,就可以自动登录,确实很便捷。那么,它是如何实现快捷登录的呢?本篇文章就带大家通过真实项目的登录场景来了解一下微信扫码登录的整个流程。如果对你有帮助的话,还不忘点赞支持一下,感谢!一、功能背景公司的平原创 2021-06-12 13:53:02 · 2924 阅读 · 1 评论 -
SpringBoot整合WebSocket,实现即时通讯
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-05-27 23:36:31 · 1949 阅读 · 6 评论 -
超详细的基于springBoot实现邮件发送功能
文章目录前言一、实现效果图二、常用的邮件协议简介三、获取邮箱授权码四、代码实现1.引入依赖2.编码3.配置yml总结前言在项目的开发工程中,经常有需要发送邮件的功能场景,比如,通过邮件注册、认证、找回密码、系统报警通知、报表信息等。那遇到这种功能的时候应该怎么去做呢?本篇文章带大家通过SpringBoot快速实现一个发送邮件的功能。一、实现效果图无图无真相,话不多说,先上效果图。项目源码:SpringBoot实现邮件发送功能二、常用的邮件协议简介 SMTP协议SMTP(Sim原创 2021-04-30 15:53:43 · 1117 阅读 · 1 评论