自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 实现ChatGPT的流式应答(基于WebFlux)

spring boot实现类似chatgpt的流式返回

2023-10-08 15:59:10 782

原创 java生成随机汉字的几个方法

生成随机汉字的几个方法方法1: 根据Unicode生成方法2: 根据GBK编码生成方法1: 根据Unicode生成汉字Unicode编码的区间为:0x4E00 → 0x9FA5char result = (char) (0x4e00 + (int) (Math.random() * (0x9fa5 - 0x4e00 + 1)));System.out.println("result : " + result);方法2: 根据GBK编码生成 String str = ""; int high

2022-05-19 19:23:05 5819

原创 Redisson实现分布式锁完整实例 多线程模拟并发(单机)

1 前言随着分布式系统以及spring cloud等微服务架构的普及,对于分布式锁的掌握成为了每个程序员必须掌握的基操。常见的分布式锁的实现方法有基于数据库,基于分布式协调系统,基于缓存三种。本文通过Redisson 分布式重入锁用法,来简单实现分布式锁。加锁逻辑:根据给定key判断锁存不存在如果锁不存在则新增锁,并设置重入计数为1,并设置过期时间。如果锁存在,且唯一标识匹配,则表明锁重入请求,重入计数+1,并设置过期时间。如果锁存在,但唯一标识不匹配,则表明被其他线程占用,返回剩余过期时间。

2021-07-15 01:49:38 2662

原创 spring boot后台分页实例

本文使用datatable + spring boot实现后台分页。当有大量数据,需要通过表形式展示时,需要进行后台分页,即每次只请求当前页面需要展示的数据。引用的库前台:jQuery 2.2.4DataTable 1.10Html5后台:Spring BootJPA(Hibernate)Maven作为示例,创建一个名为datatable的数据库。并创建名为tb_datatable的表,表中有id,column1,column2,column3共四列数据。如下图,共插入21行类

2020-07-18 21:58:10 398

原创 java多线程间数据通信方法

本文介绍Java多线程访问共享的数据的三种策略第一种:使用synchronized同步方法共享可变数据第二种:使用volatile共享可变数据第三种:不共享可变数据,只共享不可变数据首先看一段错误的代码在下例中,main方法为主线程,backgroundThred为子线程。在主线程中,我们首先调用了子线程,并输出状态,此时应该为RUNNABLE(执行中)。为了使子线程能够允许2秒我们调用了sleep()方法来睡眠2秒,2秒后将stopFlag置为true。这时我们预期,子线程的while方法应

2020-07-04 06:55:40 288

原创 Spring Boot+JPA增删改查实例

本文介绍orphanRemoval属性,并使用该属性对子类实体进行增删操作。阅读本文您需要掌握以下前提知识:Spring Boot基础知识Hibernates-JPA基础知识Java基础知识什么是orphanRemoval,百度了下发现没有非常准确且简单的定义。orphanRemoval:当子类实体不再与父类实体关联时即删除该实体。即,当你从父实体的相应集合中删除了该子类实体时,它会被物理删除,而非只在内从中删除。以下为实例,模拟了评论以及点赞操作:为了让大家更加直观,先上项目结构图:

2020-06-30 02:11:17 314

原创 group by多字段多次分组(项目实例)

本文介绍group by配合聚合函数在实际项目中的实例。先模拟生成一个表模拟用户的交易记录,分别有交易日,序列号,用户ID,交易金额四个字段,并设置交易日,序列号,用户ID为联合主键。并插入一些测试数据,两名用户的共7条交易数据。Q:现要求能够输入每个用户最后一个交易(即交易日最新,并且序列号为该交易日最大)的交易详细的SQL语句。DDL如下:CREATE TABLE IF NOT EXISTS trade_history( BASE_DATE DATE NOT NULL, SEQU

2020-06-27 11:27:20 4535 2

原创 java传统for循环及增强for循环比较及使用场景详解

本文比较了java传统for循环及增强for循环的优缺点,及适合的使用场景。首先来看一段代码片段:片段:遍历数组 // 生成一个长度为10的整型数组 int[] numArr = new int[10]; // 传统for循环,遍历赋值 for( int i=0; i<numArr.length; i++ ) { numArr[i] = i; } // 增强for循环,遍历取值 for( int a : numArr ) { System.out.println( a );

2020-06-26 12:15:41 1429

原创 bootstrap+spring boot实现折叠展开功能(collapse组件)

本文使用bootstrap及spring boot,来实现内容的折叠和展开(这里模拟生成评论的内容)。本方法不适合数据量过大的情况,数据量过大时应采用分页检索的办法。使用到的技术:Spring BootThymelead(前台模板引擎、可用JSP替代)Bootstrap 4.4.1JQuery 3.4.1Maven,Java SE1.8,Apache Tomcat等实现效果:Spring Boot项目生成地址:https://start.spring.io/项目结构如下(红框内为

2020-06-25 13:40:55 1391

原创 spring boot带进度条文件上传简单实例

本文使用ajax方法来实现文件上传带进度条显示。进度条样式使用了Bootstrap的progress bar组件。进度条的计算使用了XmlHttpRequest的onprogress事件控制器。使用到的技术:Spring BootThymelead(前台模板引擎)Bootstrap 4.4.1JQuery 3.4.1Maven,Java SE1.8,Apache Tomcat等项目结构(红框内为关联文件,yml等基础配置也是需要的)YML启动文件,注意设置文件上传的大小限制,默认的是1

2020-06-24 17:49:08 2085 2

原创 CentOS 8安装Nginx并配合Tomcat搭建反向服务器

######### Overview ###########Search for Nginx package:sudo yum search nginx#Install nginx package using the yum command on CentOS 8:sudo yum updatesudo yum install nginx#Update firewall setti...

2020-03-03 15:24:20 552

原创 flutter各源文件目录生成方法

最近开始上手Flutter,看了官方文档后,产生了所有source都能写在main.dart的错觉。在官方社区查了一下,flutter项目应该怎样生成目录(源码的folder)。以此记录一下,希望对大家有帮助。 首先,所有flutter项目的根基——main.dart,应该尽可能的保持简单(即少量代码),作为一个flutter项目的总览。下面是官方文档建议的文件结构,由bloc...

2019-12-20 16:21:31 985

原创 更改flutter启动图标icon

//修改pubspec.yaml配置文件dev_dependencies:flutter_test:sdk: flutterflutter_launcher_icons: “^0.7.4” //在依赖中添加库//pubspec.yaml配置文件中设置图标flutter_icons:android: “launcher_icon”ios: trueimage_path: “a...

2019-12-17 21:53:21 415

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除