- 博客(101)
- 收藏
- 关注
原创 mybatis-plus批量插入方式对比
在我们进行持久化数据操作时,新增数据不仅仅局限于单数据插入。会涉及到需要批量执行数据操作的业务,此时选用不同的批量插入方式会出现插入时间不同,今天我们针对mybatis插件做持久化时批量插入的四种方式做测试对比。目录使用标签foreach循环方式使用 BatchExecutor 批处理执行器进行批量插入for循环方式执行批量插入数据MyBatis-Plus 通用IService中saveBatch方式对比结果 使用标签foreach循环方式 foreach标签经常用于遍
2022-04-14 16:56:23
4631
原创 mybatis-plus注解@TableLogic使用
在实际开发中我们会遇到逻辑删除的业务场景,当我们使用mybatis-plus时可以使用其中注解@TableLogic来方便实现逻辑删除的操作。@TableLogic注解表示逻辑删除@TableLogic注解参数 value = ""未删除的值,默认值为0 delval = "" 删除后的值,默认值为1 @TableLogic(value="",delval="")效果:在字段上加上这个注解再执行BaseMapper的删除方法时,删除方法会变成修改场景:1、实体类.
2022-04-07 17:45:29
5717
转载 docker搭建nginx镜像,配置外置宿主机,并配置启动vue项目
1.安装nginx docker镜像获取nginx官方镜像docker pull nginx查看镜像docker images运行容器docker run --name nginx -d -p 80:80 nginxrun 创建启动容器实例-- name 容器命名-v 映射目录-d 设置容器后台运行-p 本机端口映射 将容器的80端口映射到本机的80端口语句最后一个nginx是使用镜像的名称访问本地ip测试2、将nginx关键目录映射到本机首先.
2020-12-01 18:29:12
584
原创 vue前端项目打docker镜像基于nginx
一、打包vue项目在开发完的vue项目执行命令打包生成dist文件夹二、linux服务器准备打镜像环境执行命令mkdir 创建基础目录(目录位置个人选择,无关紧要)/usr/local/src/dockerFile/vueDocker将打包好的dist文件夹上传到vueDocker目录下,并且在同级目录下创建Dockerfile文件执行命令vi编辑Dockerfile镜像内容#基于nginx镜像FROM nginx#将dist文件中的内容复制到 /usr/share/n..
2020-12-01 17:56:49
3246
原创 springboot项目打包成docker镜像多种方式及存在外置jar包或配置文件时的镜像方式
springboot项目打包不存在外置配置时1、打jar包镜像方式。springboot项目目录下添加Dockerfile文件注:Dockerfile没有后缀名Dockerfile中的内容如下:# 基于哪个镜像,需要用一个已有的镜像做载体来创建,这里使用的java8镜像,如果大家的docker镜像中没有java8,它就会自动去下载FROM openjdk:8-jdk-alpine# 将本地文件夹挂载到当前容器,指定/tmp目录并持久化到Docker数据文件夹,因为Spr..
2020-11-25 18:24:05
3583
原创 centos7安装docker
准备工作可以使用以下命令查看CentOS版本lsb_release -a在CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看uname -r用yum源安装1、查看是否已安装docker列表yum list installed | grep docker2、安装dockeryum -y install docker-y表示不询问安装,直到安装成功,安装完后再次查看安装列表3、启动docker.
2020-11-25 17:41:31
118
原创 rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:235: starting containe
在使用docker命令进入容器时执行docker exec -it [容器ID]/bin/bash 报错如下:rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:235: starting containe这是由于容器中没有bash目录,直接改为sh就ok。docker exec -it [容器ID]/bin/sh...
2020-11-25 16:55:37
5231
1
转载 EUREKA切换NACOS时发现两个注册中心的解决方法
EUREKA切换NACOS时发现两个注册中心的解决方法spring cloud微服务的注册中心有eureka切换成nacos时,由于maven依赖的问题,有时会出现以下错误:Field registration in org.springframework.cloud.client.serviceregistry.ServiceRegistryAutoConfiguration$ServiceRegistryEndpointConfiguration required a single bean,
2020-11-24 15:10:51
3263
1
原创 springboot2.X集成nacos实现注册中心和配置中心
nacos官方手册https://nacos.io/zh-cn/docs/what-is-nacos.html1.预备环境准备本文使用springboot2.1.9.RELEASE,nacos1.3.2 ,JDK 1.8+ ,mysql5.6.5+ 本文采用Windows部署环境2.下载源码或者安装包你可以通过源码和发行包两种方式来获取 Nacos。1、从 Github 上下载源码方式 2、下载编译后压缩包方式本文方便起见采用下载zip包形式解压即可用。 地址:最新稳定版本...
2020-11-18 16:48:25
3060
1
原创 springboot2.0整合使用Apollo配置中心
springboot 版本:2.1.9.RELEASEApollo 版本:1.4.0一、背景对于传统的单体应用,通常使用配置文件管理所有配置。比如Spring Boot开发的单体应用,配置内容可以放在application.yml文件,需要切换环境的话可以设置多个Profile并在启动应用时指定spring.pfofiles.active={profile}。然而,在微服务架构中,配置管理一般有以下需求集中管理配置:一个使用微服务架构的应用系统可能会包含成千上万个微服务,因此集中管理配置
2020-11-12 18:34:06
820
转载 SpringBoot中使用Jackson导致Long型等数据精度丢失问题
数据库中有一个bigint类型数据,对应java后台类型为Long型,在某个查询页面中碰到了问题:页面上显示的数据和数据库中的数据不一致。例如数据库中存储的是:1475797674679549851,显示出来却成了1475797674679550000,后面几位全变成了0,精度丢失了。1. 原因这是因为Javascript中数字的精度是有限的,bigint类型的的数字超出了Javascript的处理范围。JS 遵循 IEEE 754 规范,采用双精度存储(double precision),占用 6
2020-10-10 19:11:16
3986
1
原创 Spring Boot 集成 jasypt-spring-boot - 实现配置文件加密
当前版本3.0.3 ,3.0之前版本测试没有成功,目前整理3.0.3可以添加pom依赖<!-- jasypt --><dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.3</version>
2020-09-17 19:09:21
543
原创 SpringBoot Admin 2.1.6 监控管理使用
一、什么是Spring Boot AdminSpring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使用SpringCloud注册中心(例如Eureka,Consul)发现。 UI是的Vue.js应用程序,展示Spring Boot Admin Client的Actuator端点上的一些监控。服务端采用Spring WebFl.
2020-07-16 17:36:03
548
原创 金额转换(数字转中文)
public static void main(String[] args) { double number = 23003600.00; DecimalFormat format = new DecimalFormat("#.00"); String num= format.format(number); System.out.println("转换前数字值:"+num); String result = numCoverC.
2020-05-29 17:16:27
537
转载 spring事务
事务特征⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性...
2020-04-10 15:45:40
152
原创 kafka可视化工具kafka tool
kafka tool官网下载地址http://www.kafkatool.com/download.html连接zookeeper服务地址其中message信息乱码,解决方案如下:1、点击tools—settings—选择topics中将key message设置为string2、选择指定的topic中properties将key message设置为string ...
2020-04-01 15:13:12
2029
原创 springboot集成kafka实现消息发布订阅
新建SpringBoot项目基于JDK版本1.8,SpringBoot 版本2.2.2.RELEASE1、pom.xml中添加依赖<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactI...
2020-04-01 11:30:25
5238
3
原创 springboot项内置Tomcat和外置Tomcat的两种打包方式
1,内置Tomcat的打包方式在pom.xml文件添加以下配置(目的:自定main入口和跳过Junit代码)<build> <plugins> <!--打包为jar时指定main入口--> <plugin> <groupId>org.springframework....
2020-03-11 17:30:01
2172
原创 spring boot集成Quartz实现数据库存储方式任务调度
在上一篇文章https://blog.youkuaiyun.com/zhou_fan_xi/article/details/104699361介绍过quartz使用RAMJobStore方式配置。接下来顺着上篇文章讲解将任务数据存储在数据库中方式。(继续使用上一篇创建job的代码)JobStore介绍JobStore是负责跟踪调度器中所有的工作数据:作业任务、触发器、日历等。在配置文件(quartz....
2020-03-10 15:32:38
823
原创 quartz使用RAMJobStore方式配置
Quartz的3个基本要素Scheduler:调度器。所有的调度都是由它控制。 Trigger: 触发器。决定什么时候来执行任务。 JobDetail & Job: JobDetail定义的是任务数据,而真正的执行逻辑是在Job中。使用JobDetail + Job而不是Job,这是因为任务是有可能并发执行,如果Scheduler直接使用Job,就会存在对同一个Job实例并发访问的...
2020-03-06 17:20:27
3537
原创 @JsonFormat、@JSONField、@DateTimeFormat的使用以及其区别
三者出处1、JsonFormat来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。2、JSONField来源于fastjson,是阿里巴巴...
2020-01-19 16:03:27
986
原创 集合中的那些事
集合中类默认大小及扩容大小List元素是有序的、可重复ArrayList、Vector默认初始容量为10Vector:线程安全,但速度慢 底层数据结构是数组结构 加载因子为1:即当 元素个数 超过 容量长度 时,进行扩容 扩容增量:原容量的 1倍 如Vector的容量为10,一次扩容后是容量为20ArrayList:线程不安全,查询速...
2020-01-07 18:07:01
260
转载 CopyOnWrite思想
写入时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种优化策略。其核心思想是,如果有多个调用者(Callers)同时要求相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者视图修改资源内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这...
2020-01-07 17:54:35
688
原创 Java List操作(分片 partition)
java中list 常用的操作大家都很熟悉了,有时候我们需要像在数据库中一样可以直接group by,select,where,partition来操作 list,如果直接for循环,比较麻烦,可以使用下面这些方法。将list(当然,也可以是其他集合)拆分成多份,常见的场景,比如批量执行sql、分批推送消息,都需要控制批量执行的条数,java传统的集合操作中并没有这样的方法,但是 google...
2019-12-26 18:04:25
5671
原创 解决字符流读入乱码
在字符流读取文件时发现读取出现了中文乱码代码:public class test1 { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new FileReader("e:\\a1\\d1.txt")); ...
2019-12-25 17:08:33
1116
原创 mysql关闭autocommit带来的坑
打开mysql客户端执行show variables like 'autocommit';查看是否开启自动提交set autocommit ='OFF'; 关闭自动提交打开两个查询页按如下顺序执行窗口1:执行insert语句插入一条数据INSERT INTO `upload_local_file` (`id`, `extension_name`, `file_name`...
2019-12-25 15:46:19
4517
3
原创 springboot默认缓存实现Spring Cache注解的使用
选择默认缓存器中间件 springboot集成redis,配置redis为默认缓存器引入依赖<!--redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-re...
2019-12-25 11:20:22
1614
原创 springboot集成mysql数据库实现文件上传下载
引入依赖引入swagger依赖 方便接口调试 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version&g...
2019-12-24 10:44:46
4076
3
原创 easyexcel使用和遇到的问题点
引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beat1</version> </dependency> 读取exce...
2019-12-20 17:57:33
4930
1
转载 Java ThreadPoolExecutor的拒绝策略CallerRunsPolicy的一个潜在的大坑
一、背景前面一篇文章转载了ThreadPoolExecutor的几种拒绝策略:https://blog.youkuaiyun.com/w605283073/article/details/89930154,讲得很不错。但是网上介绍使用拒绝策略遇到的大坑的文章不多。本文介绍其中一个真是故障的场景。二、问题描述ThreadPoolExecutor的拒绝策略常用的是DiscardPoli...
2019-12-19 18:09:08
699
转载 Executors Java编程规范插件提示手动创建线程池的解决办法
一、背景最近了解一下线程池,下载其中的代码并运行。https://howtodoinjava.com/core-java/multi-threading/when-to-use-countdownlatch-java-concurrency-example-tutorial/其中ApplicationStartupUtil这个类package com.chujianyun;...
2019-12-19 17:53:51
435
原创 Spring Boot使用Redis进行消息的发布与订阅多频道处理
Redis 不仅提供一个NoSQL数据库,同时还提供了一套消息系统。下面我将Spring Boot使用Redis进行消息的发布与订阅具体的流程分享给大家首先引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot...
2019-12-17 15:25:32
1450
原创 MySQL监控全部执行的sql语句
首先查看是否开启日志记录show variables like 'general_log%';OFF 关闭ON 开启临时开启日志记录SETGLOBAL log_output ='TABLE';SETGLOBAL general_log ='ON'; //日志开启SETGLOBAL log_output ='TABLE';SETGLOBAL general...
2019-12-12 15:37:23
428
原创 单个Tomcat配置多个启动服务
在微服务中会存在多个业务系统,在打包放tomcat启动时 如果考虑一个业务放一个tomcat则需要装多个tomcat,今天我们操作在一个tomcat下放置多个业务启动。配置server.xml<Service name="Catalina2"> <Connector port="8001" protocol="HTTP/1.1" co...
2019-12-12 11:09:15
2353
原创 springboot+tomcat+jndi实现外置配置文件配置多数据源
一、Spring Boot 2.0版本使用JNDI引入pom指定外部配置文件路径: <profile> <id>product</id> <properties> <logback.loglevel>INFO</logback.l...
2019-12-12 10:34:06
2083
1
转载 maven项目(包括springboot等)引入本地jar时打jar或者war包发布,报找不到引入的jar包的问题解决方案
在maven项目中很多时候可能需要我们通过add reference方式引入的本地的jar包,而且自己在本地运行也是没有任何问题,但是在打包发布的时候就会报错找不到自己引入的文件,比如:惊不惊喜?意不意外?在这里,说下如何解决类似的问题。首先,我们在通过上述方式引入的时候只是说我们run的时候自己本地项目知道根据你导入jar的路径去加载jar包,所以会没问题。但是!打包之后,这个jar...
2019-11-29 09:39:22
1947
转载 CentOS 7下安装部署Elasticsearch 6.3.2
elasticsearch简介ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文检索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。实验部署1、实验所需组件及环境...
2019-11-27 15:28:31
198
原创 CentOS7 上安装 Zookeeper-3.4.9
在 CentOS7 上安装 Zookeeper-3.4.9 服务 默认端口21811、部署jdk环境步骤一:执行下面命令搜索系统上已经安装的JDKrpm -qa | grep -E '^open[jre|jdk]|j[re|dk]'步骤二:执行下面命令,删除已经安装过的JDK(若未找到安装过的JDK版本,则跳过此步)yum remove java-1.6.0-openjdk...
2019-11-27 15:11:36
357
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人