- 博客(153)
- 资源 (1)
- 收藏
- 关注
原创 Linux安装Niginx
Nginx(发音为"engine x")是一个高性能的HTTP和反向代理服务器,可以用于静态资源的快速传输和负载均衡。
2024-09-05 11:25:37 642
原创 Java 实现异步的几种方式
/ 核心线程数// 最大线程数// 队列大小// 线程前缀名每种方案的选择取决于具体的应用场景、复杂度和性能要求。简单的异步任务可能仅需使用Future和Callable,而复杂的异步流程控制和跨服务通信则可能更适合采用CompletableFuture或消息队列。
2024-07-24 15:06:03 682
原创 JAVA【JUC 包中的 Atomic 原子类】
Atomic 翻译成中文是“原子”的意思。在化学上,原子是构成物质的最小单位,在化学反应中不可分割。在编程中,Atomic 指的是一个操作具有原子性,即该操作不可分割、不可中断。即使在多个线程同时执行时,该操作要么全部执行完成,要么不执行,不会被其他线程看到部分完成的状态。原子类简单来说就是具有原子性操作特征的类。java.util.concurrent.atomic 包中的 Atomic 原子类提供了一种线程安全的方式来操作单个变量。
2024-07-23 16:27:19 758
原创 Java实现Excel导入和导出【最全】
目录前言一、功能测试1.1 测试准备1.2 数据导入1.2.1 导入解析为JSON1.2.2 导入解析为对象(基础)1.2.3 导入解析为对象(字段自动映射)1.2.4 导入解析为对象(获取行号)1.2.5 导入解析为对象(获取原始数据)1.2.6 导入解析为对象(获取错误提示)1.2.7 导入解析为对象(限制字段长度)1.2.8 导入解析为对象(必填字段验证)1.2.9 导入解析为对象(数据唯一性验证)1.2.10 导入多Sheet页1.3数据导出1.3.1 动态导出(基础)1.3.2
2024-07-03 14:13:18 3642
原创 springboot接口防抖【防重复提交】
所谓防抖,一是防用户手抖,二是防网络抖动。在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。要针对用户的误操作,前端通常会实现按钮的loading状态,阻止用户进行多次点击。而对于网络波动造成的请求重发问题,仅靠前端是不行的。为此,后端也应实施相应的防抖逻辑,确保在网络波动的情况下不会接收并处理同一请求多次。逻辑正确,也就是不能误判;响应迅速,不能太慢;易于集成,逻辑与业务解耦;
2024-07-01 11:14:39 943
原创 Linux 安装 MySQL 8.0.26
数据库初始化./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize命令,得到临时密码。1)将mysql.server启动文件复制到/etc/init.d目录,使用cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld命令。需要注意:记录一下mysql数据库的临时密码:e0l?
2024-06-27 15:52:26 1108
原创 BigDecimal常用记录
如果在代码中出现 if (a属性.compareTo(b属性) > 0)具体地,a属性.compareTo(b属性) 是用来比较 a属性和 b属性的大小关系。返回值是一个整数,表示两个对象的比较结果。
2024-05-21 09:19:27 279
原创 【设计模式】——策略模式
策略模式是一种强大而灵活的设计模式,它可以帮助我们处理不同的算法或行为,并使系统更具可维护性和扩展性。通过封装具体的策略类和使用上下文对象,我们可以轻松地选择和切换不同的策略,而无需修改现有的代码。
2024-05-15 13:33:42 975
原创 JAVA【jvm层级的仿DataFrame工具——JDFrame】
jvm层级的仿DataFrame工具,语意化和简化java8的stream流式处理工具。
2024-04-29 14:02:57 602 1
原创 【Java】@Transactional 事务注解
Spring的事务边界是在调用业务方法之前开始的,业务方法执行完毕之后来执行commit or rollback(Spring默认取决于是否抛出runtimeException)。1、就是@Transactional注解保证的是每个方法处在一个事务,如果有try一定在catch中抛出运行时异常。2、方法必须是public修饰符。否则注解不会生效,但是加了注解也没啥毛病,不会报错,只是没卵用而已。3、this.本方法的调用,被调用方法上注解是不生效的,因为无法再次进行切面增强。
2024-01-17 15:32:58 566
原创 【JAVA】easyExcel导出导入使用
EasyExcel是阿里巴巴开源插件之一,主要解决了poi框架使用复杂,sax解析模式不容易操作,数据量大起来容易OOM,解决了POI并发造成的报错。主要解决方式:通过解压文件的方式加载,一行一行地加载,并且抛弃样式字体等不重要的数据,降低内存的占用。EasyExcel在SpringBoot的集成 引入对应的pom依赖@ColumnWith 列宽@ContentFontStyle 文本字体样式@ContentLoopMerge 文本合并@ContentRowHeight 文本行高度。
2023-04-23 13:36:54 5480 1
原创 【.net core】Excel导入导出之Npoi.Mapper
引入Npoi.Mapper的nuget包<PackageReference Include="Npoi.Mapper" Version="3.5.1" />导出操作新建类作为数据承载的载体,以下定义: public class MortgageInfo { /// <summary> /// 编号 /// </summary> public string JYCode { get; se
2022-03-06 21:59:57 994
原创 [.net core]创建后台服务项目结构
方式一安装dotnet new --install DotNetCore.ApiTemplate.CSharp::1.0.2帮助dotnet new dncat --help/////////////////////////////DotNetCoreApiTemplate -ha|--hangfire 是否使用hangfire bool - Required-r|--rabbitmq 是否使用RabbitMQ,使用 RabbitMQ.Event
2022-02-19 09:26:03 284
原创 .NET CORE【ES】
一、基础查询 //条件单个 var mustQuerys = new List<Func<QueryContainerDescriptor<RequestFunds>, QueryContainer>>(); //条件集合 if (input.BrokerIds.Any()) { mustQuerys.Add(q => q.Terms(t => t.Field(f => f.BrokerId).Terms(input.BrokerId
2021-09-23 15:16:03 585
原创 ES基础语句
1、基础查询GET trans_deposit/_search{ //条件查询 "query": { "bool": { "must": [ {"term": { "jYCode": { "value": "JY202108040004" } }} ] } }}//分组查询GET trans_deposit/_search{ "aggs": {
2021-09-23 14:34:45 485
原创 【Pgsql】笔记
pgsql小笔记SELECT d."JYCode" 交易编号, -- 字符串 to_char( d."DepositDate", 'YYYY-MM-DD' ) 转定日期, --日期格式化 concat_ws ( '-', d."SigningBrokerName", d."SigningBrokerPhone" ) AS "经纪人信息", -- 字符串拼接 ( SELECT string_agg ( "MeansTypeNm", ';' ) FROM "BackupFiles"
2021-09-14 15:51:30 159
原创 .NET CORE【EF】
//根据id查询var transPlan = await _context.TransPlans.FindAsync(detailParam.TransPlanId);//条件查询 返回一条 var query = _context.TransPlans.Where(q => q.Id == inputParam.TransPlanId).FirstOrDefault();//条件查询 返回集合 var signAccessoryList = await _context.Mort
2021-08-18 11:55:36 651
原创 .Net日期时间格式转换【C#】
时间戳转换 /// <summary> /// 时间戳和日期的转化 /// </summary> public class DateTimeUtility { /// <summary> /// 日期转换为时间戳(时间戳单位秒) /// </summary> /// <param name="TimeStamp"></param&
2021-08-18 09:44:01 1959
原创 【.net Redis 哈希(Hash)】
hash又称为散列、杂凑等,是将任意长度的输入通过散列算法变换为固定长度的输出,最终输出也就是哈希值。这种转换是一种压缩映射。也就是说,散列值的空间通常要远小于输入控件,不同的输入可能会散列成相同的输出,所以不可能通过散列值来确定唯一的输入值。哈希表hash table是为了将数据映射到数组中某个位置,通过数组下标访问元素以提高数据的查询速度,这种查询的平均期望时间复杂度为O(1)。Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis .
2021-08-08 15:45:14 511
原创 【.NET】Redis分布式锁
介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。进程锁:为了控制同一操作系统中多个进程访问某个共享资源,因为进程具有独立性,各个进程无法访问其他进程的资源。分布式锁:当多个进程不在同一个系统中,用分布式锁控制多个进程对资源的访问。设计思路由于Redis是单线程模型,命令操作原子性,所以利用这个特性可以很容易的实现分布式锁。A用户端在Resdis写入1个KEY,其他的用户无法写入.
2021-08-08 15:36:19 1221
原创 【.NET】IQueryable扩展方法实现复杂查询条件
业务开发中,经常处理比较复杂的查询条件如果任一输入有值,则必须作为查询条件之一。示例代码IQueryable<User> query = repository.GetAll();if(name!=null){ query =query.Where(p=>p.Name==name);}if(date!=null){ query =query.Where(p=>p.Date==date);}或者把所有条件放到同一个Where子句中:IQuer
2021-08-08 14:20:13 969
原创 EF Core加密存储数据
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-08-08 14:01:03 629 1
原创 【EF】命令
EF常用命令备忘删除迁移Update-Database -Migration:0 (删除表结构)Remove-Migration (删除迁移文件)Add-Migration <name>(添加迁移文件)Update-Database (建立表结构)
2021-08-01 16:10:12 582
原创 【.net】获取枚举描述
工具类using System;using System.ComponentModel;using System.Reflection;namespace Core.Mortgage.Application.Common{ /// <summary> /// /// </summary> public static class EnumUtils { /// <summary> ///
2021-08-01 16:07:44 552
原创 Java使用freemarker导出word文档
创建一个docx的word文档,编辑好模板,比如trip.docx。trip.docx另存为trip.xml格式化trip.xml(方便阅读和替换里面的变量)替换变量,更改为trip.ftl放入项目中java代码填充数据,并保存word引入jar<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> .
2021-03-29 11:13:17 308
原创 Linux环境搭建——MYSQL
系统:CentOS 7.8 —— Mysql版本:5.71、安装mysql服务yum -y install mysql-community-server2、如果提示异常Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile No package mysql-community-server available. Error: Nothing to do3、需要下载
2021-03-08 11:27:46 179
原创 Linux环境搭建——[JDK]
系统:CentOS 7.8JDK版本:81、查看自带JDK是否已安装yum list installed |grep java2、卸载JDK(如果没有安装就不需要卸载,直接进行第4步)yum -y remove java-1.8.0-openjdk*3、卸载tzdata-javayum -y remove tzdata-java.noarch4、查看yum库中的Java安装包yum -y list java*5、安装java8yum -y install java-1.8.0-
2021-03-08 11:08:25 101
原创 Minio(储桶bucket)上传和下载文件【Java】(图片转流、base64)
Controllerpackage com.sjasoft.cloud.admin.controller.ems;import com.sjasoft.cloud.admin.service.ems.SafetyMonitoringService;import com.sjasoft.framework.spring.bean.Result;import com.sjasoft.mbg.ems.model.EmsAlert;import io.swagger.annotations.Api;i
2021-02-20 17:17:08 7423 2
原创 HuTool工具【Java】
一、 概念静态方法封装。由开源项目作者的项目中一个util包衍变而来的工具类官方文档如何使用参考API视频教程一、引入Maven<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.5.8</version></dependency>//版本:Hu
2021-02-20 14:51:12 303
原创 【Java 文件下载工具类】
FileUtilspackage com.cmbchina.ccd.itpm.project.util; import org.slf4j.Logger; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import
2021-02-19 13:16:52 653
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人