【开源免费】使用Spring Boot和Html实现ChatGPT,1:亿还原,将就看
highlight: a11y-dark 简介 前段时间写了一个Chatgpt的Java版SDK开源地址:chatgpt-java欢迎使用。但由于原来OpenAI 并没有支持官网的chatgpt模型,所以使用起来相对没有官网那么智能完善,所以就没有写出一个demo项目,只开源了Open AI...[2023/3/17]
Solon2 与 Spring Boot 的区别
1、与 Springboot 的常用注解比较 Solon 2.2.0 Springboot 2.7.8 说明 @Inject * @Autowired 注入Bean(by type) @Inject("name") @Qualifier+@Autowired 注入Bean(by ...[2023/3/3]
@Transactional千万不要这样用!!踩坑了你都可能发现不了!!!
前阵子接手了一段同事之前的代码,里面用到了@Transactional注解,了解Spring的小伙伴肯定知道,@Transactional是Spring提供的一种控制事务管理的快捷手段。但是我这段程序在运行的时候,经常出现莫名其妙的问题,连夜研究了好久才搞清楚,在这里记录一下, 避免大家入坑...[2023/2/27]
Spring Boot自动配置原理懂后轻松写一个自己的starter
目前很多Spring项目的开发都会直接用到Spring Boot。因为Spring原生开发需要加太多的配置,而使用Spring Boot开发很容易上手,只需遵循Spring Boot开发的约定就行了,也就是约定大于配置,无需觉得它神奇,它的底层都是使用的Spring。聊完这个原理带着大家轻松写一...[2023/2/22]
三分钟实战手写Spring Boot Starter
1 背景 在平时的开发中,开发的同学会把一些通用的方法,写成一个工具类,例如日期转换的,JSON转换的等等,方便业务后续调用,使代码更容易维护。 如果一些更常用的方法,例如鉴权的,加解密的等等,几乎每个项目都会使用到,这时候开发的同学就会从以前的项目中再抄过来,随着项目的增多,几乎每个项目都有...[2023/2/22]
Spring Boot + WebSocket 实时监控异常
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https: github...[2023/2/3]
dapr本地托管的服务调用体验与Java SDK的Spring Boot整合
1 简介 之前在文章《dapr入门与本地托管模式尝试》中介绍了dapr和本地托管,本文我们来介绍如果在代码中使用dapr的服务调用功能,并把它整合到Spring Boot中。 Dapr服务调用的逻辑如下: 本次实验会创建两个服务: pkslow-data,提供数据服务,用于返回数据; ...[2023/2/3]
刺激,线程池的一个BUG直接把CPU干到100%了。
你好呀,我是歪歪。 给大家分享一个关于 ScheduledExecutorService 线程池的 BUG 啊,这个 BUG 能直接把 CPU 给飚到 100%,希望大家永远踩不到。 但是,u1s1,一般来说也很难踩到。 到底咋回事呢,让我给你细细嗦嗦。 Demo 老规矩,按照惯例,先...[2023/1/18]
从log4j切换到logback后项目无法启动
1、背景 有个旧项目之前使用的是log4j2来打印日志的,因为某些原因,同事想换成logback。 换成logback改动也很简单,大致就一下2步: 删除log4j2.xml配置,新增logback.xml配置。剔除掉log4j相关的jar 引入slf4j (其实之前使用log4j...[2023/1/18]
Svelte框架实现表格协同文档
首先,从框架搭建上,本篇示例采用当下流行的前后端分离的开发方式,前端使用npm作为脚手架搭建Svelte框架。 后端使用Java的SpringBoot作为后端框架。 首先,介绍下在前端Svelte框架下搭建在线表格编辑器。 1、在pageage.json文件中引入相关资源 "@gra...[2023/1/18]
mvn compile报错“程序包com.XXX不存在”
目录【解决方案一】:【解决方案二】(亲测有效):【解决方案三】: maven 编译时报错:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:程序包com.sun.……...[2023/1/18]
Spring Boot 3.0横空出世,快来看看是不是该升级了
目录简介对JAVA17和JAVA19的支持recordText BlocksSwitch Expre ionsinstanceof模式匹配Sealed Cla es and Interfaces迁移到Jakarta EEGraalVM Native Image Support对Micromete...[2023/1/11]
dubbo2升级到dubbo3实践
dubbo当前版本 2.7.3 期望升级到 3.0.11。 升级过程 maven依赖变更 <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo<...[2022/12/12]
MapStruct与lombok加载顺序问题与annotationProcessorPaths的关系?
MapStruct是什么? MapStruct is a code generator that greatly simplifies the implementation of mappings between Java bean types based on a convention ove...[2022/12/5]
Spring Boot 配置多数据源
Spring Boot 配置多数据源 作者:Grey 原文地址: 博客园:Spring Boot 配置多数据源 CSDN:Spring Boot 配置多数据源 说明 本文主要介绍了 Spring Boot 下如何配置多数据源。 环境和版本 Java 版本:17 Spring Boot...[2022/12/2]
深入浅出Seata的AT模式
目录一、业务背景二、Seata架构1、核心组件2、AT模式三、案例分析1、流程分析2、写隔离3、读隔离四、对比XA模式五、参考源码 单个掉队,导致集体被动摆烂; 一、业务背景 在分布式架构中,事务管理是个无法避开的复杂问题,虽然有多种解决方案,但是需要根据业务去选择合适的; 从个人最...[2022/12/2]
SpringBoot项目中新增脱敏功能的实例代码
目录SpringBoot项目中新增脱敏功能项目背景项目需求描述项目解决方案1. 解决方案2. 实现代码2.1 注解 Sensitive2.1 脱敏类型枚举 SensitiveType2.3 脱敏工具 DesensitizedUtils3 使用实例3.1 需注解对象3.2 脱敏操作 SpringBoo...[2022/12/2]
springBoot 过滤器去除请求参数前后空格(附源码)
背景 : 用户在前端页面中不小心输入的前后空格,为了防止因为前后空格原因引起业务异常,所以我们需要去除参数的前后空格! 如果我们手动去除参数前后空格,我们可以这样做 @GetMapping(value = "/manualTrim") public void helloGet...[2022/11/28]
day22-web开发会话技术04
WEB开发会话技术04 14.Se ion生命周期 14.1生命周期说明 public void setMaxInactiveInterval(int interval):设置se ion的超时时间(以秒为单位),超过指定的时长,se ion就会被销毁。 值为正数的时候,设置se io...[2022/11/23]
一个宁静祥和没有bug的下午和SqlSession的故事
1 背景 这是一个安静祥和没有bug的下午。 作为一只菜鸡,时刻巩固一下基础还是很有必要的,如此的大好时机,就让我来学习学习mybatis如何使用。 这可和我看到的不一样啊,让我来看看项目里怎么写的。 我们项目中的Dao都继承于BaseDao,而BaseDao继承于SqlSe ion...[2022/11/23]
我服了!SpringBoot升级后这服务我一个星期都没跑起来!(下)
上一次的升级过程中差不多已经跑起来90%了,这周一上班解决完一点小问题,服务已经正常跑起来了,于是再拿着一些其他的服务测试了一下,又发现了一些其他的报错,所以继续。 14. DiscoveryEnabledServer Not Found 主要问题还是 eureka 中没有了 ribbon 相...[2022/11/23]
如何防止用户重复提交订单?(上)
一、摘要 对于投入运营的软件系统,最近小编在巡检项目数据库的时候,发现某些表存在不少的重复数据,对于这样的脏数据,初步分析大致的来源有以下可能: 1.由于用户误操作,多次点击表单提交按钮 2.由于网速等原因造成页面卡顿,用户重复刷新提交页面 3.黑客或恶意用户使用 postman 等网络工具,...[2022/11/23]
如何防止用户重复提交订单?(下)
一、摘要 在上一篇文章中,我们详细的介绍了随着下单流量逐渐上升,为了降低数据库的访问压力,通过请求唯一ID+redis分布式锁来防止接口重复提交,流程图如下! 每次提交的时候,需要先调用后端服务获取请求唯一ID,然后才能提交。 对于这样的流程,不少的同学可能会感觉到非常鸡肋,尤其是单元测...[2022/11/23]
Spring Boot 多数据源配置
第一种方式: AbstractRoutingDataSource 1.1. 手动切换数据源 application.properties # Order # 如果用Druid作为数据源,应该用url属性,而不是jdbc-url spring.datasource.order.jdbc-...[2022/11/23]
Springboot使用Logback实现日志配置与异常记录
目录概述logback配置详解logback配置异常情况 概述 默认情况下,SpringBoot内部使用logback作为系统日志实现的框架,将日志输出到控制台,不会写到日志文件。如果在application.properties或application.yml配置,这样只能配置简单的场景,保存...[2022/11/23]
SpringBoot使用@Async的总结!
一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。 之前有写过一篇文章叫做: 异步编程利器:CompletableFuture 在实际工作中也更加推荐使用CompletableFuture,因为它实现异步方式更加优雅,而且功能更加强大! 既然SpringBoot能通过 @As...[2022/11/21]
SpringBoot怎么自定义一个Starter ?
小伙伴们曾经可能都经历过整天写着CURD的业务,都没写过一些组件相关的东西,这篇文章记录一下SpringBoot如何自定义一个Starter。 原理和理论就不用多说了,可以在网上找到很多关于该方面的资料,这里主要分享如何自定义。 原文链接:SpringBoot怎么自定义一个Starter...[2022/11/17]
SpringBoot3正式版将于11月24日发布:都有哪些新特性?
从 2018 年 2 月 28 号发布 Spring Boot 2.0 版本开始,整个 2.X 版本已经经过了 4 年多的时间,累计发布了 95 个不同的版本,而就在前不久,2.X 系列的也已经迎来了他的最终版本:2.7。 前几天我还写了一篇关于 Spring Boot 从 2.1 版本升级到...[2022/11/17]
Spring Boot框架下实现Excel服务端导入导出
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。今天我们就使用纯前对按表格控件带大家了解,如何在Spring Boot框架下实现Excel服务端导入...[2022/11/17]
SpringBoot利用AOP实现一个日志管理详解
目录1. 需求2. 新建一张日志表3. 写相应的Controller层4.Service接口层5.Service实现6.Mapper接口7.Mapper.xml(我用的是Mybatis)8.CspLog9.实体类SysOperCspLog10. 定义日志管理的切面11.AsyncFactoryCsp...[2022/9/20]
SpringBoot统一返回格式的方法详解
目录前言1. 直接返回结果2. 约定返回格式3. 返回统一格式结果4. 切片封装统一格式编写注解编写ControllerAdvice见证奇迹的时刻到了5. 自定义返回格式场景1:返回成功时code为200场景2:自定义返回格式 前言 目前很多项目都是前后端分离,前后端会事先约定好返回格式。那么后...[2022/8/31]
SpringBoot超详细讲解事务管理
目录1. 事务的定义2. 事务的特性3. 事务的隔离性4. 事务管理5. 示例 1. 事务的定义 事务是由 N 步数据库操作序列组成的逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。 2. 事务的特性 事务的 ACID 特性: 原子性:事务是应用中不可分割的最小执行体一致性:事...[2022/8/23]
SpringBoot采用AJAX实现异步发布帖子详解
目录1. AJAX2. 功能描述3. 开发流程4. 引入AJAX依赖5. Util6. Mapper7. Service8. Controller9. JavaScript 1. AJAX Asynchronous JavaScript and XML异步的 JavaScript 与 XML 不是...[2022/8/23]
mybaties plus实体类设置typeHandler不生效的解决
目录实体类设置typeHandler不生效问题解决mybaties中TypeHandler的使用 解决 实体类设置typeHandler不生效问题 实体类: @Data @TableName(value = "centre_manage_server_info") public...[2022/8/23]
详解SpringBoot中@NotNull,@NotBlank注解使用
目录一.添加依赖二.在类中使用验证注解1.创建验证实体类(嵌套使用)2.创建全局异常处理器,对me age信息进行处理,并返回给前端3.在controller中的使用三.在方法参数中使用验证注解,与@RequsetParam注解同时使用,注意类上使用@Validated四.自定义验证注解 一.添加依...[2022/8/23]
Spring Boot整合Thymeleaf详解
目录 Thymeleaf基本介绍基本语法th:text文本替换th:if和th:unle 文本替换th:each foreach循环th:id、th:value、th:checked等(和form表单相关)整合Thymeleaf基本配置三层架构删除操作编辑操作用户登录用户注销点击注销用户 ...[2022/8/23]
使用SpringBoot+EasyExcel+Vue实现excel表格的导入和导出详解
目录一、导入和导出二、导出数据为excel实现过程三、将excel中的数据导入到数据库中 一、导入和导出 导入:通过解析excel表格中的数据,然后将数据放到一个集合中,接着通过对持久层操作,将数据插入到数据库中,再加载一下页面,从而实现了数据的导入 导出:导出也是直接对数据库进行操作,获取...[2022/8/23]
SpringBoot详细介绍SPI机制示例
目录简介Java SPI实现示例说明创建动态接口实现类1实现类2相关测试运行结果源码分析Spring SPI源码分析总结 简介 SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要用于框架中开发,例如Dubbo、S...[2022/8/22]
SpringBoot+hutool实现图片验证码
目录一、理解 “ 服务器 / 浏览器 ”沟通流程(3步)二、开发前准备:三、 代码实现四、“点击验证码图片自动刷新” 是如何实现的 ?五、最终效果 一、理解 “ 服务器 / 浏览器 ”沟通流程(3步) 第1步:浏览器使用&l...[2022/8/16]
SpringBoot自动配置特点与原理详细分析
目录一、SpringBoot是什么二、SpringBoot的特点(核心功能)三、SpringBoot的自动配置原理1. @SpringBootApplication2. @SpringBootConfiguration3. @EnableAutoConfiguration4. @ComponentS...[2022/8/16]
SpringBoot如何使用@Cacheable进行缓存与取值
目录使用@Cacheable进行缓存与取值1. @Cacheable的作用2.常用属性说明SpringBoot中Cacheable使用说明功能说明1. cacheNames & value2. 关联多个缓存名3. key & keyGenerator4. cacheManager &...[2022/8/16]
Spring Boot快速实现 IP地址解析的示例详解
目录前言引入:开发:在线解析:场景: 大家好! 我是慕歌,一只想教你学习 Spring Boot的野生coder! 欢迎来到慕歌的 Sping boot系列教程,希望通过这个教程带大家搭建基础的 Spring Boot项目,该教程所有知识点均来源于本人的真实开发! 前言 在前一节的学习中,慕...[2022/8/16]
SpringBoot使用@EnableAutoConfiguration实现自动配置详解
目录@EnableAutoConfiguration注解一个简单的案例总结 @EnableAutoConfiguration注解 其实SpringBoot自动配置的原理主要是用的这个@EnableAutoConfiguration注解,其原理为以下三点: (1)在@EnableAutoCon...[2022/8/16]
SpringBoot项目报错:"Error?starting?ApplicationContext...."解决办法
目录发现错误一、编译出问题二、请求接口重复三、加@Mapper注解四、加@SpringBootApplication注解,数据库问题五、端口重复问题六、包冲突总结 发现错误 SpringBoot项目报错: Error starting ApplicationContext. To displ...[2022/8/16]
SpringBoot多环境开发与日志小结
前置导入 什么是多环境?其实就是说你的电脑上写的程序最终要放到别人的服务器上去运行。每个计算机环境不一样,这就是多环境。常见的多环境开发主要兼顾3种环境设置,开发环境——自己用的,测试环境——自己公司用的,生产环境——甲方爸...[2022/8/16]
springboot集成swagger3与knife4j的详细代码
目录springboot集成swagger3swagger3的springboot启动器jar包编写TestController代码创建Swagger3Configuration运行演示对接口进行注解swagger中常用的注解接口基本使用运行结果集成更好的UI-knife4jmaven启动器 spr...[2022/8/16]
springboot自带的缓存@EnableCaching用法
目录springboot自带的缓存@EnableCaching1.@Cacheable添加缓存2.@CacheEvict 清理缓存 使用springboot自带缓存步骤1.在启动类XXXApplication2.在service层需要使用缓存的方法3.修改和删除数据时将缓存删除 sprin...[2022/8/16]
用IDEA创建SpringBoot项目的详细步骤记录
目录前言一、网站方式创建 二、IDEA方式创建总结 前言 一般来说,用IDEA创建SpringBoot项目有两种方式。其一是Spring官网提供了一个快速生成SpringBoot项目的网站,可以在官网直接下载后,再导入IDEA中。另外一种是直接用IDEA创建一个SpringBoot项目...[2022/8/16]
关于@MapperScan包扫描的坑及解决
目录@MapperScan包扫描的坑手写一个@MapperScan扫描器@MapperScan自己手写该注解的思路 @MapperScan包扫描的坑 在使用通用mapper执行查询时,由于不太注意顺手就导了spring的包: import org.mybatis.spring.annotat...[2022/8/16]
SpringBoot自动配置原理分析
目录前言一、启动类1.1、@SpringBootConfiguration1.2、@EnableAutoConfiguration1.3、@ComponentScan1.4、探究方向二、@SpringBootConfiguration三、@EnableAutoConfiguration3.1、@Au...[2022/8/16]