【开源免费】使用Spring Boot和Html实现ChatGPT,1:亿还原,将就看【开源免费】使用Spring Boot和Html实现ChatGPT,1:亿还原,将就看
highlight: a11y-dark
简介
前段时间写了一个Chatgpt的Java版SDK开源地址:chatgpt-java欢迎使用。但由于原来OpenAI 并没有支持官网的chatgpt模型,所以使用起来相对没有官网那么智能完善,所以就没有写出一个demo项目,只开源了Open AI...[2023/3/17]
SpringBoot部署到外部Tomcat无法注册到Nacos服务端
事情经过
近期做一个项目投标演示(POC)环境支持,需要集成Nacos服务端。考虑到现有项目中已经有了Nacos相关依赖,那还不简单?新建个服务端,配置几下重启不就搞定了吗?然而事情远没有想得这么简单。同样的代码在我本地IDE里运行就能注册成功,在演示环境 Tomcat+War 部署就不行了。
...[2023/3/17]
Springboot之如何统计代码执行耗时时间
目录前言正文① StopWatch② System.nanoTime()③ new Date ()④ System.currentTimeMillis() 总结 前言
近日群里有萌新提到关于统计代码执行时间的事:
开始&n...[2023/3/17]
Spring Boot security 默认拦截静态资源的解决方法
Spring Boot security 会默认登陆之前拦截全部c , js,img等动态资源,导致我们的公开主页在登陆之前很丑陋
像这样:
网上很多解决办法都过时了比如还在使用WebSecurityConfigurerAdapte,antMatchers
public cla ...[2023/3/17]
【SpringBoot】还不会SpringBoot项目模块分层?来这手把手教你
前言
??缘由
经常看到网上很多优秀的开源项目中,代码简洁,模块分层完美。反观自己代码层级混乱,,却不知如何整理分层。此文手把手教你一步一步创建模块,左手右手一个慢动作。结合本人实际开发及个人项目中分层思路的分享,大神请勿喷。
??本文阅读时长
约25分钟
??主要目标
熟练掌握Spri...[2023/3/15]
SpringBoot实现定时发送邮件的三种方法案例详解
目录一、发送邮件的三种方法二、定时任务介绍1.@EnableScheduling2.@Scheduled三、前期准备工作1、登录QQ邮箱获取授权码第一步:进入QQ邮箱第二步:找到POP3/SMTP,并开启第三步:复制授权码2、pom.xml中的依赖3、在全局配置文件application.prope...[2023/3/8]
SpringBoot之@Value获取application.properties配置无效的解决
目录@Value获取application.properties配置无效问题@Value获取application.properties中的配置取值为Null解决方法正确做法总结 @Value获取application.properties配置无效问题
无效的原因主要是要注意@Value使用的注...[2023/3/8]
SpringBoot对不同Bean注解的区别和使用场景说明
目录对不同Bean注解的区别和使用场景什么是Bean?注解@Bean @Component …等都有什么区别?SpringBoot注入对象冲突如何解决?SpringBoot的各种注解@Configuration总结 对不同Bean注解的区别和使用场景
什么是Bean?
谈Bea...[2023/3/8]
Solon2 与 Spring Boot 的区别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注解篇,学完注解深入了解SpringBoot更容易
由于Spring Boot项目底层也都是Spring,使用Spring Boot就需要对Spring的注解有一定的了解,这次就把Spring的部分注解聊一下。熟悉了Spring的注解使用Spring Boot开发更是得心应手。
@ComponentScan:用于指定扫描包的路径,只有在它指定的...[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]
SpringBoot多controller添加URL前缀的实现方法
目录前言一、配置文件内添加前缀配置二、配置映射的实体三、自定义注解四、自定义PathMatch添加前缀五、测试 前言
在某些情况下,服务的controller中前缀是一致的,例如所有URL的前缀都为/context-path/api/v1,需要为某些URL添加统一的前缀。
能想到的处理办法为...[2023/2/17]
使用java?-jar修改SpringBoot中application.properties的配置项
目录java -jar修改SpringBoot中application.properties配置项问题描述解决方式外部配置Java:java -jar命令讲解总结 java -jar修改SpringBoot中application.properties配置项
如果Spring Boot整合了Ma...[2023/2/15]
SpringBoot项目启动后再请求远程接口的实现方式
场景
有一个SpringBoot项目需要在启动后请求另一个远程服务拿取配置,而不是加载过程中去请求,可能会出现类没有实例化的场景,因此需要实现项目完全启动后再进行请求的场景。
解决
一般会有两种实现方式:
实现ApplicationRunner接口
@Component
public...[2023/2/13]
Springboot整合AOP和注解,实现丰富的切面功能
简介
我们在文章《Spring AOP与AspectJ的对比及应用》介绍了AOP的使用,这篇文章讲解一下AOP与注解的整合,通过注解来使用AOP,会非常方便。为了简便,我们还是来实现一个计时的功能。
整合过程
首先创建一个注解:
@Retention(RetentionPolicy.RUNT...[2023/2/10]
在 SpringBoot 项目中简单实现 JWT 验证
使用 SpringBoot 提供 api 的时候,我更喜欢使用 jwt 的方式来做验证。网上有会多 Spring Security 整合 jwt 的,也有 Shiro 整合 jwt 的,感觉有点复杂。这里分享一下自己在项目中的简单实现。
依赖包
除了 SpringBoot 基本的依赖,需要一个...[2023/2/8]
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]
Springboot?-?Fat?Jar示例详解
目录导读JAR 是什么JAR简介JAR结构包结构描述文件MANIFEST.MFFatJar有什么不同什么是FatJar?SpringBoot FatJar解决方案spring-boot-maven-plugin打包过程打包结果启动时的类加载原理启动的整个流程参考资料 导读
Spring Boot...[2023/2/2]
SpringBoot学习笔记 - 构建、简化原理、快速启动、配置文件与多环境配置、技术整合案例SpringBoot学习笔记 - 构建、简化原理、快速启动、配置文件与多环境配置、技术整合案例
【前置内容】Spring 学习笔记全系列传送门:
Spring学习笔记 - 第一章 - IoC(控制反转)、IoC容器、Bean的实例化与生命周期、DI(依赖注入)
Spring学习笔记 - 第二章 - 注解开发、配置管理第三方Bean、注解管理第三方Bean、Spring 整合 ...[2023/2/2]
刺激,线程池的一个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不存在”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的故事一个宁静祥和没有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]