
Java
文章平均质量分 82
Java基础知识、Springboot、maven、前后端分离、打包jar上传部署到服务器等
繁华尽头满是殇
万丈高楼平地起
展开
-
spring boot 接口参数解密和返回值加密
SecureApi 是一款接口参数和返回值加解密工具,高性能、轻量化,无任何外部依赖;spring boot 场景启动器设计(支持spring boot2和3),完全自动化,支持 param、body 参数(暂不支持 path 参数),用户无需关心加密解密和密钥匹配过程;配置灵活,配置文件支持 yml 和 bean 方式,支持注解、url 正则进行接口匹配,支持 AES、SM4、RSA 等多种加密方式,支持 DH 前后端密钥协商方式。用户增量趋势。原创 2024-07-05 15:43:46 · 1783 阅读 · 0 评论 -
springboot使用logback配置彩色日志
应该有很多同学发现,使用了logback以后,我们的控制台日志都变成灰色了,网络上搜到的logback配置大多数没有进行配色,所以会把springboot的默认配色方案给覆盖掉。原创 2023-09-02 10:57:36 · 2279 阅读 · 0 评论 -
Springboot使用MDC进行日志追踪
MDC(Mapped Diagnostic Context)是一个可以追踪程序上下文日志的东西,是springboot项目自带的org.slf4j包下的类,无需引入额外依赖即可使用。原创 2023-02-13 16:42:06 · 3358 阅读 · 1 评论 -
Springboot 配置使用 Kafka
不多BB讲原理,只教你怎么用,看了全网没有比我更详细的了,yml 配置,Config 工厂代码配置都有,batch-size、acks、offset、auto-commit、trusted-packages、poll-timeout、linger 应有尽有,批量消费、开启事务、定义批量消费数量、延时发送、失败重试、异常处理你还想要什么As we all know,当今世界最流行的消息中间件有 RabbitMq、RocketMq、Kafka,其中,应用最广泛的是RabbitMq,RocketMq。原创 2022-11-01 17:44:41 · 15333 阅读 · 17 评论 -
SpringSecurity 配置与使用(含新 API 替换过时的 WebSecurityConfigurerAdapter)
As we all know,现今主流权限框架有 SpringSecurity、Shiro、SaToken,Shiro在前后端分离时代基本被淘汰,剩下适合大型项目的和 适合中小型项目的SaToken可以选择,SaToken 我也写了文章Springboot 使用 SaToken 进行登录认证、权限管理以及路由规则接口拦截。原创 2022-10-28 11:13:27 · 5414 阅读 · 3 评论 -
Springboot 配置使用 RabbitMQ 并实现延时队列
RabbitMQ作用:举几个例子,1、系统解耦,A系统无需关心B系统是否执行成功,无需等待B系统响应,直接把操作扔给mq就可以干其他事情了。2、系统使用高峰期,每秒产生10000条消息需要存储,一次性存入数据库恐怕不太行,所以先把数据发送到 RabbitMQ ,然后设置延时队列,每秒从队列取出1000条存入数据库,这样可以减少数据库压力。3、购买商品下订单以后,发送到延时队列,如果20分钟后没有付款,则从队列删除订单,也就是自动取消订单,如果支付了,则取出存入数据库,下单成功。原创 2022-10-08 15:01:28 · 2128 阅读 · 0 评论 -
Springboot 配置使用 Elasticsearch
就是一个很快很快的搜索引擎,使用场景就是像网易词典这种,输入几个相关文字,就可以从几百万个单词中瞬间找到匹配的翻译,这种海量数据的模糊搜索在关系型数据库中是不可能的,所以这时候就要用到elasticsearch了,但是它和 MongoDB 这种文档型数据库有什么区别,有没有懂的可以在评论区教教我,我是没有搞懂。原创 2022-09-29 21:52:07 · 4029 阅读 · 2 评论 -
Springboot 使用 Dubbo3 并以 zookeeper 为注册中心
dubbo:简单来讲就是一个 RPC 调用框架,类似于 SpringCloud + OpenFeign,支持 nacos、zookeeper 等注册中心,拥有图形界面,可使用界面管理 zookeeper 的节点信息zookeeper:是一个微服务注册中心,将一个个 Java 项目注册到 zookeeper,然后使用 openfeign 或者 dubbo 就可以实现这些 Java 项目之间的互相调用。原创 2022-09-29 15:22:48 · 3244 阅读 · 3 评论 -
Springboot 使用 SaToken 进行登录认证、权限管理以及路由规则接口拦截
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。还有踢人下线、账号封禁、路由拦截规则、微服务网关鉴权、密码加密等丰富功能它不比 Shiro 和 SpringSecurity 的功能少,而且配置使用更加简单。原创 2022-09-26 11:26:43 · 14593 阅读 · 9 评论 -
Springboot 使用 MybatisPlus LambdaQueryWrapper 构造器和注解自定义SQL
MyBatis-Plus 是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,MyBatis 可以无损升级为MyBatis-Plus,只需要更换一下pom依赖即可。1、强大的条件构造器:单表查询不需要写SQL语句2、支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错。原创 2022-09-25 23:20:22 · 9121 阅读 · 0 评论 -
Springboot 配置线程池创建线程和配置 @Async 异步操作线程池
众所周知,创建显示线程和直接使用未配置的线程池创建线程,都会被阿里的大佬给diss,所以我们要规范的创建线程。至于 @Async 异步任务的用处是不想等待方法执行完就返回结果,提高软件前台响应速度,一个程序中会用到很多异步方法,所以需要使用线程池管理,防止影响性能。原创 2022-09-20 15:34:14 · 5079 阅读 · 5 评论 -
Springboot 使用 redis 并配置序列化和封装 RedisTemplate
为什么要配置序列化:如果不配置序列化的话,我们在redis数据库中存储的数据可能以乱码形式显示出来,不方便我们判断数据存储的正确性,说白了就是序列化以后存进去的是什么,查询出来的就是什么,否则我们的键值都会变成一串看不懂的乱码。原创 2022-09-20 11:56:49 · 10779 阅读 · 2 评论 -
Springboot引入hibernate配置自动建表并进行增删改查
有些业务比较复杂,比如我们需要新建10张表,每张表有10个字段,如果用手工来操作,肯定非常浪费时间,而且随着代码中对实体类的修改,还要同时修改数据库表,有时候写着写着就忘了,代码改了,数据库没改,这种问题使用 hibernate 的自动建表就好啦。原创 2022-09-19 18:23:15 · 2826 阅读 · 0 评论 -
分别使用 BIO 和 NIO 的实现简易群聊系统
下面是BIO和NIO的原理结构图,可以看出使用BIO时,每个客户端都会独占一个线程,而使用NIO时,一个Selector选择器独占一个线程,一个选择器下面可以连接多个客户端,然后Selector开始轮询下面的每一个客户端,这就提高了线程的复用,所以叫非阻塞IO以上是 JDK 的原生 BIO 和 NIO 的使用 demo,代码的意思在注释里面基本都有写,但是写的不是很详细,因为我也没有完全弄懂,这东西要慢慢自己断点调试来研究,接下来会写 NIO 的框架——Netty。原创 2022-08-29 17:13:25 · 316 阅读 · 1 评论 -
EasyExcel 样式注解大全
EasyExcel 样式注解大全前言11个注解字段注解 类注解最佳实践补充颜色总结前言别人大佬的文章,我记下来做笔记,尽自己可见11个注解@ExcelProperty@ColumnWith 列宽@ContentFontStyle 文本字体样式@ContentLoopMerge 文本合并@ContentRowHeight 文本行高度@ContentStyle 文本样式@HeadFontStyle 标题字体样式@HeadRowHeight 标题高度@HeadStyle 标题样式@转载 2022-04-08 08:55:04 · 24556 阅读 · 7 评论 -
Springboot 配置使用Swagger3
Swagger是一个可以根据你的代码,自动生成接口文档的一个工具,并且可以用作接口测试工具,2022年了,Swagger也要用3.0版本了吧启动项目,访问,注意 Swagger3 和 2 访问的页面有细微差别。原创 2022-03-12 22:21:09 · 21050 阅读 · 3 评论 -
Springboot 配置 Retrofit 并使用各种请求方式
Retrofit 这个东西是简化我们在 java 代码里面书写 http 请求的工具,支持 restful 风格的请求,我们通常发送请求,要用到 hutools 和 httpUtil 这些东西,要写好多行,现在用 Retrofit 只需要两三行。retrofit是对okhttp的封装源码先给你们:retrofit-demoGradle这个工具尚不成熟,最好紧跟版本,使用最新版这个路径是用书写 retrofit 请求方法的文件的包路径,2.3.8版本及以后就可以不加了,也能扫描到2.项目解析结构原创 2022-03-04 11:18:41 · 7463 阅读 · 2 评论 -
Springboot 配合 Vue 保存前端上传的文件
Springboot 配合 Vue 保存前端上传的文件前言一、后端代码二、前端前言新建一个 Springboot 项目,前端我使用原生 html 来演示上传,你们用 element 或者其他什么的比较方便。一、后端代码@RequestMapping("/upload")public void upload(MultipartFile multipartFile) throws IOException { //获取前端上传的文件 String fileName = multipa原创 2022-02-25 10:42:49 · 940 阅读 · 0 评论 -
Springboot 配合 Vue 让用户下载文件
Springboot 配合 Vue 让用户下载文件前言一、后端二、前端接收下载前言创建一个 Springboot 项目,也可以是普通 Java 项目,前端用 Vue 的 axios 接收下载一、后端解析都在注释里@RequestMapping("/download") public void download(HttpServletResponse response) throws Exception { //这里写要让前端下载的文件的路径 File file原创 2022-02-25 08:49:41 · 3290 阅读 · 4 评论 -
Java File文件流读取文件夹内的文件并替换文件内容
Java File文件流读取文件夹内的文件并替换文件内容一、前言二、代码三、运行结果一、前言批量读取文件夹内的文件,并替换各个文件的内容二、代码新建一个普通 Java 项目就可以,创建文件 ReadFile.javaimport java.io.*;public class ReadFile { public void replaceFileStr() { //遍历文件夹内所有内容,不包换文件夹里的文件夹里的内容 String path = "F:\\原创 2022-02-24 17:16:15 · 4994 阅读 · 7 评论 -
关于 AOP 切面导致 WebSocket 的 @ServerEndPoint 无法注入的问题
关于AOP切面导致WebSocket的@ServerEndPoint无法注入的问题前言原因和解决方案前言今天给我的毕业设计加上了 AOP 日志拦截,结果导致了 WebSocket 的报错。,错误信息为:Failed to register @ServerEndpoint class: class pers.xuyijie.communityinteractionsystem.websocket.MyWebSocket$$EnhancerBySpringCGLIBCaused by: javax.w原创 2022-01-24 13:13:55 · 3492 阅读 · 0 评论 -
Springboot 引入 EasyExcel 写入数据到流 直接让前端下载(Vue + axios请求)
EasyExcel 写入表让前端下载(Vue + axios请求)一、Springboot 引入 EasyExcel 依赖二、后端代码三、前端代码一、Springboot 引入 EasyExcel 依赖如果你在网上看到还要引入 poi 什么的依赖,那是针对旧版 easyexcel ,现在的版本不需要引入其他依赖,就下面的就可以了。<dependency> <groupId>com.alibaba</groupId> <artifactId&g原创 2022-01-17 08:49:12 · 6627 阅读 · 3 评论 -
MyBatisPlus 开启事务并交由 Springboot 管理
MyBatisPlus 开启事务并交由 Springboot 管理前言一、什么是事务二、开启方法总结前言网络上对于事务的解释都太过官方,太过晦涩,导致我们都看不懂,我来用人话解释一下什么是事务。而开启事务也很简单,只需要@EnableTransactionManagement和@Transactional两个注解。一、什么是事务假如你的程序正在进行数据库写操作,但是中途程序报错了,所以数据库里被写入了一些残缺的东西;如果开启了事务功能,springboot会在程序正常结束后才会写入数据库,如原创 2022-01-09 12:05:14 · 13715 阅读 · 2 评论 -
Vue和Springboot实现SM4加密和解密(前、后端均可)
网站配置 https 比较麻烦,所以为了我们的用户账户安全,密码在从前端传输到后端的过程中,最好加密一下,选用 SM4 有两个原因,一是国产加密算法,二是这个国密算法是对称的,只要加密和解密的 key 和 vi 相同,可以很容易的解密,同时需要匹配 key 和 vi 又兼顾了安全。我下面会提供前端的 SM4 加密 js 文件,vue 项目也可以使用,还有 Java 的 SM4 加密和解密文件。可实现前端加密传输到后端解密,存到数据库,后端也可以解密传输到前端进行明文的显示。原创 2021-12-24 17:00:05 · 28509 阅读 · 89 评论 -
Linux使用Docker安装Nacos并配置MySQL数据源,将Springboot的配置文件部署到Nacos
为什么要把配置文件放到 Nacos 上1、 采用本地配置,不方便查看当前项目配置,也不方便修改(要重新打包重启),在 Nacos 上可以方便地查看和修改2、易引发生产事故/方便开发测试:比如在发布的时候,容易将测试环境的配置带到生产上,引发生产事故,而项目的启动脚本可以指定 Nacos 上面的配置文件,从而使测试配置文件失效,所以开发的时候无需把精力放在修改配置文件上本篇的 nacos 是单机部署,后面研究研究配合 Dubbo 的集群部署吧。原创 2021-12-24 09:21:56 · 5995 阅读 · 7 评论 -
Vue+Springboot上传图片将 Base64 码转换为图片保存在指定文件夹
整体思路:vant插件默认的图片从前端上传到后端,是以 base64 码的形式传输的,而 base64 码很长很长,有几千个字符,存入数据库会占用空间,每次读取都传输 base64 的话也很消耗带宽和流量,所以后端接收以后要转化 base64 为图片存到硬盘或服务器,而数据库只保存图片的物理地址的路径,例如 F:/img/aa.png。原创 2021-12-21 10:37:43 · 11922 阅读 · 7 评论 -
Springboot配置Druid或Hikari连接池(并开启MyBatisPlus事务)
springboot配置hikari或者druid连接池,并配置使用mybatisplus,并解决解决报错信息:Creating a new SqlSessionSqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@42607e80] was not registered for synchronization because synchronization is not activeJDBC Connection原创 2021-12-20 22:35:00 · 8719 阅读 · 2 评论 -
Springboot物理地址映射和Nginx静态资源代理实现前端上传并访问服务器图片
Springboot物理地址映射+Nginx静态资源代理实现前端上传并访问服务器图片前言一、Nginx 静态资源代理配置二、Springboot 物理地址映射配置总结前言为什么要配置物理地址映射:因为前端的 <img :src="">或者 :style="background-img(url)"这些,如果要给这些标签动态赋值,从后端传来的路径必须是 url 形式,也就是说带冒号的动态src或者url不支持绝对路径的物理地址。 所以要配置物理地址映射把图片的的物理地址映射为 url 地址传给原创 2021-12-20 11:08:40 · 6723 阅读 · 4 评论 -
使用Springboot的AOP日志拦截获取前端网站的操作记录
随着我们的不断学习,我们的技术不断沉淀,做出来的项目也不断成熟所以,我们的网站怎么能没有日志记录呢annotation包下面的Log,是自定义注解,字段的解释下面的注释中很清晰哦/*** @author 徐一杰* Aop日志拦截自定义注解。原创 2021-12-08 21:50:41 · 1462 阅读 · 0 评论 -
Java运行非Web的Springboot项目(测试类或启动主类两种方法)
Java运行非Web的Springboot项目(测试类或启动主类两种方法)前言一、创建打开一个Springboot项目二、运行项目1、Test测试类运行2、启动主类运行三、持续运行不停止(定时任务、自动执行)总结前言如果springboot不是一个Web项目,大家知道,项目启动以后马上就会停止,并且 controller 等各层里面的方法也不会被执行,下面有两种方式可以运行容器里面的方法,测试类或者修改启动主类,都非常简单,几行代码的事情。一、创建打开一个Springboot项目使用idea,选原创 2021-12-05 14:04:19 · 5611 阅读 · 0 评论 -
Java 实现 Springboot 定时任务(每隔一段时间自动执行一次)
Java非Web的springboot实现定时器(每3秒执行一次)前言一、新建Java Springboot项目二、示例代码运行效果总结前言运行非Web的Springboot项目时,会发现启动主类后马上就会停止,普通的Timer定时器无法达到定时自动执行Springboot项目的效果,下面我们用Springboot自带的注解(@Component、@Scheduled、@EnableScheduling)来进行定时任务。一、新建Java Springboot项目选择Spring Initializ原创 2021-12-02 23:27:41 · 24778 阅读 · 14 评论 -
Maven实现数据在前端页面展示与增删改查(Spring通用)
Maven工程实现前后端的相连前言项目开始使用idea快速生成一个Maven工程配置pom.xml文件数据库准备安装MySQL建立数据库配置resouces配置db.properties配置applicationContext.xml配置spring-mvc.xmlmapper包下的UserMapper.xmlbean层PageInfoUsercontroller层UserControllerdao层UserDaoservice层IUserServiceimpl包下的UserServicefliterLog原创 2020-07-02 14:52:24 · 4551 阅读 · 0 评论 -
Java实现扑克牌的生成、洗牌、发牌、排序
1、生成一副斗地主的扑克牌2、输出洗牌后的扑克3、发牌,并留下的3张底牌4、排序三人的牌原创 2020-06-24 20:31:49 · 3960 阅读 · 1 评论 -
Java JDBC连接数据库实现增删改查
Java JDBC实现数据库增删改查前言文件结构在util包下新建DBUtil类在bean包下新建User类在dao包下新建UserDao类新建Test类解释一下bean包、dao包前言接着上一篇文章,增删改查的整合版本文件结构在util包下新建DBUtil类将JDBC的基本步骤的1、2、7步放入DBUtil类中,代码中使用了try…catch,也可以直接idea自动生成抛出异常package com.XuYijie.util;import java.sql.*;public clas原创 2020-06-29 13:30:30 · 10973 阅读 · 1 评论