自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot项目启动后执行-—CommandLineRunner详解

【代码】springboot项目启动后执行-—CommandLineRunner详解。

2023-05-06 14:41:30 580

原创 rabbitMQ相关文章汇总

rabbitMQ的工作模式、可靠性、不重复消费

2023-02-13 10:20:24 490

转载 XXL-JOB分布式任务调度平台的搭建部署和使用

https://mp.weixin.qq.com/s/LURHICHDTngS2AwdPVsTDA

2022-05-16 15:41:02 188

原创 windows一键启动一键关闭批处理(后台服务方式运行)

前提:首先确定安装好了java以及配置了环境变量一键启动:@echo offSTART "服务名" javaw -jar 项目名.jar一键关闭:@echo offset port=端口号for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do ( echo kill the process %%m who use the port taskkill /pid %%m -t -f goto q):q

2022-01-13 14:06:03 540

原创 cron表达式详解

Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:(1) Seconds Minutes Hours DayofMonth Month DayofWeek Year(2)Seconds Minutes Hours DayofMonth Month DayofWeek一、结构corn从左到右(用空格隔开):秒 分 时 日 月 星期 年份,年份可省略二、各字段的含义字段 允许值 允许的特殊字符秒(Seconds) 0~59

2021-11-16 14:00:18 186 1

原创 统一返回封装数据类

import cn.hutool.core.date.DateUtil;/******************************************************************************* * Description: 统一结果返回工具类 * 使用方式 成功调用ok方法 失败调用error方法 * 1.支持链式编程 2.支持静态调用 3.多种重载 * @author quyi * @version 1.0 */public class R

2021-09-29 16:18:02 559

原创 深入理解 Mysql 索引底层原理(Mysql 索引底层数据结构选型)

深入理解 Mysql 索引底层原理(Mysql 索引底层数据结构选型)前言Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效的查找算法是非常重要的,因为数据库中存储了大量数据,一个高效的索引能节省巨大的时间。比如下面这个数据表,如果 Mysq

2021-08-24 13:37:55 198

原创 Innodb 引擎和 Myisam 引擎的实现

Innodb 引擎和 Myisam 引擎的实现Mysql 底层数据引擎以插件形式设计,最常见的是 Innodb 引擎和 Myisam 引擎,用户可以根据个人需求选择不同的引擎作为 Mysql 数据表的底层引擎。我们刚分析了,B+树作为 Mysql 的索引的数据结构非常合适,但是数据和索引到底怎么组织起来也是需要一番设计,设计理念的不同也导致了 Innodb 和 Myisam 的出现,各自呈现独特的性能。MyISAM 虽然数据查找性能极佳,但是不支持事务处理。Innodb 最大的特色就是支持了 ACID

2021-08-24 13:36:33 137

原创 nacos配置中心

nacos配置中心Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。首先启动nacos服务,进入nacos控制台:配置模型字段描述Namespace命名空间,代表不同环境,如测试、开发、生成环境等,互相隔离Group分组,根据实际需求开分,可以代表某个项目Datald配置集,每个项目下往往有若干工程,配个配置集代表一个配置文件发布配置在nacos

2021-07-13 20:00:58 260 1

原创 nacos服务注册与发现

nacos服务注册与发现服务注册到nacos服务器1.导入jar包父工程中管理springcloudalibaba的依赖<!--spring cloud alibaba--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <ver

2021-07-13 01:53:43 346 1

转载 BigDecimal用法小结

BigDecimal的用法小结最近用到了BigDecimal,百度了一下,边学边用,然后就想着总结一下,方便以后的回顾。一、为什么使用BigDecimal​ float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候就用到BigDecimal。二、简介​ BigDecimal 由任意

2021-07-11 01:54:15 225

原创 shiro三方免密登录的简单实现方式

shiro三方免密登录的简单实现方式用户输入密码和实际密码比较方法具体位置在 org.apache.shiro.authc.credential.HashedCredentialsMatcher 中 doCredentialsMatch 方法:1.自定义一个NoPwdToken类继承UsernamePasswordToken方法,重写getCredentials()方法。public class NoPwdToken extends UsernamePasswordToken { publ

2021-06-13 23:51:11 1621 2

原创 前后端分离项目使用Shiro

前后端分离项目使用Shiro前面文章将的shiro使用都是局限于单体应用,但是在前后端分离中就会有会话存储的问题,所以这篇文章就是为了解决前后端分离项目中使用shiro的会话问题。我们用到的是redis来存储会话信息。一:导入shiro整合redis的jar包<dependency> <groupId>org.crazycake</groupId> <artifactId>shiro-redis</artifactId>

2021-06-13 00:38:37 1727 3

原创 shiro配置盐值加密

springboot配置盐值加密一:在shiro配置文件ShiroConfig.java中配置密码凭证匹配器 /** * 密码凭证匹配器,作为自定义认证的基础 * @return */ @Bean public HashedCredentialsMatcher hashedCredentialsMatcher() { HashedCredentialsMatcher hashedCredentialsMatcher = new HashedC

2021-06-12 23:43:58 1253 2

原创 springboot集成shiro

springboot集成shiro一:maven导入jar包 <!-- shiro与Spring的集成包 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</vers

2021-06-12 22:05:19 187

原创 windows下安装nacos

windows下安装nacos简介Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。下载nacos是阿里巴巴旗下开源的一套基于java开发的微服务注册中心,所以如果需要使用,需要提前准备好jre运行环境。#git下载nacos源码git c

2021-06-11 21:11:05 1167

原创 JDK下载没有Oracle账号问题

JDK下载没有order账号问题前几天需要重装jdk,于是准备下载一个jdk的安装包,第三方下载网站速度较快,但是垃圾文件多,其次不一定安全,有时候下载的版本还不一定是自己想要的,官网现在需要登陆order账号才行。但是我个人比较懒 懒得取搞账号这些,于是乎发现一个神奇的网站:http://bugmenot.com/view/oracle.com废话有点多了,这个网站提供了很多order账号,需要的直接去复制,可以看到每个账号成功率...

2021-06-06 23:32:01 619

原创 Git生成SSH密钥

Git生成SSH密钥1.配置基本信息#配置用户名git config --global user.name "quyi"#配置邮箱git config --global user.email "[email protected]"此时,会在C:\Users\Administrator目录下生成.gitconfig配置文件:2.生成SSHssh-keygen -t rsa -C "[email protected]"回车三次即可。3.完成这个时候就生成OK了,可以通过 “cat ~/

2021-06-03 18:31:51 115

原创 docker更新jar包的两种方式

docker更新jar包方式在上一篇文章说到部署jar包到docker,但是有一个问题,就是如果项目更新,则需要重新打包镜像,然后运行容器等等一系列操作,比较繁琐,所以这次介绍的方式比较简洁,没有繁琐的步骤。方式一:1.编写DockerfileFROM java:8EXPOSE 8888ENTRYPOINT ["java","-jar","/usr/data/hello-2.0.0-SNAPSHOT.jar"]这里的第三个参数“/usr/data/hello-2.0.0-SNAPSHOT.

2021-06-02 23:41:30 4484 2

原创 docker部署jar包项目

docker部署jar包项目1.liunx创建文件夹首先在liunx宿主机上找个位置创建一个新的文件夹,用于存放我们的jar包和Dockerfile文件。我这里实在/usr/local/apps目录下存放。mkdir /usr/local/apps/hello #创建文件夹2.将打包好的jar包传入新建的文件夹中这里传输方式有很多种,不一一介绍了,我这里使用的是mobaxterm客户端链接的liunx虚拟机,这个工具自带sftp链接方式,可以直接传文件。3.创建Dockerfile文件在

2021-06-01 23:54:33 478 2

原创 docker安装中文版本gitlab

docker安装gitlab之前写了docker安装gitlab的文章,不过是英文版的,可以使用网页翻译工具,今天这边是关于中文版本的gitlab的安装,方法其实大同小异,只是docker拉取镜像不同一:拉取gitlab镜像docker pull beginor/gitlab-ce:11.3.0-ce.02.创建文件夹用于和容器内部进行挂载​ 创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 容器启动后可以映射到本机,然后后续就可以直接在主机查

2021-05-31 22:38:56 367

原创 docker安装gitlab

docker安装gitlab一:拉取gitlab镜像docker pull gitlab/gitlab-ce2.创建文件夹用于和容器内部进行挂载​ 创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 容器启动后可以映射到本机,然后后续就可以直接在主机查看和编辑了,不用再进入容器操作,便于日后升级, 因此我们先准备这三个目录。# 配置文件mkdir -p /home/gitlab/etc# 数据文件mkdir -p /home/gitlab/lo

2021-05-31 22:36:26 107

转载 Docker容器日志的查看

docker attach命令docker attach [options]容器会连接到正在运行的容器,然后将容器的标准输入、输出和错误流信息附在本地打印出来。命令中options的取值有三种:–detach-keys,–no-stdin,–sig-proxy。该命令只是进入容器终端,不会启动新的进程。所以当你同时使用多个窗口进入该容器,所有的窗口都会同步显示。如果一个窗口阻塞,那么其他窗口也就无法再进行操作。使用ctrl+c可以直接断开连接,但是这样会导致容器退出,而且还stop了。如果想在脱离容

2021-05-31 21:49:50 247

原创 docker迁移与备份

docker迁移与备份如果在当前的容器中安装了各种组件,想要在其他服务器上也能快速拥有该容器的一切环境,则可以将当前容器制作为一个镜像,再将该镜像复制到其他服务器,其他服务器在基于该镜像运行容器即可。涉及命令:#将容器保存为镜像docker commit#将镜像备份为tar文件docker save#根据tar文件恢复镜像docker load#根据镜像创建并运行容器docker run一:将容器保存为镜像docker commit 容器名 制作的镜像名二:将镜像备份为一个t

2021-05-27 23:26:43 126 1

原创 docker私有镜像

docker私有仓库的搭建以及使用​ 在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这一篇介绍registry、harbor两种私有仓库搭建。一:registry 私有镜像的搭建1.拉取registry镜

2021-05-27 23:25:04 369 1

原创 Docker命令

Docker命令基础命令1.查看docker版本docker version2.查看docker详细信息docker info3.查看docker的命令docker help镜像命令1. 查看本地docker镜像命令:docker images 【参数】参数:选项描述--all,-a显示所有镜像(默认隐藏中间镜像)--digests显示镜像的摘要--filter,-f根据条件对输出结果进行过滤--format格式化输出结果--

2021-05-24 20:42:12 157

原创 swagger升级版 knife4j的使用

介绍knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!knife4j的前身是swagger-bootstrap-ui,为了契合微服务的架构发展,由于原来swagger-bootstrap-ui采用的是后端Java代码+前端Ui混合打包的方式,在微服务架构下显的很臃肿,因此项目正式更名为knife4j。目前项目主要的模块如下:此示例根据官方文档介绍演示。

2021-03-23 13:49:16 908

原创 后台controller接收日期型参数处理方式(长期更新不同条件下的接收方式)

标题后台controller接收日期型参数处理方式(长期更新不同条件下的接收方式)环境:前端传日期字符串,不使用@RequestBody注解接收,get请求方式方式一:后端Date类型接收,使用@DateTimeFormat注解方式前端传参方式二:后端String类型接收,字符串String方式后期其他项目遇到不同的条件下的传参,再来更新...

2021-03-19 09:35:59 1870

原创 Zuul网关配置 过滤器 路由 异常处理 负载均衡

Zuul 是什么,有什么作用:核心作用3个: 过滤、路由、异常处理另外、Zuul 集成了负载均衡,在下面案例会有展示下面分别讲Zuul的基础使用,以及这三个作用的案例演示:1、基本配置如下:1.1、添加Zuul 以及Eureka 依赖;<!-- 网关依赖--><dependencies> <dependency> <groupId>org.springframework.cloud</groupId>

2021-03-12 10:09:02 492

原创 SpringBoot整合Slf4j+logback日志框架

SpringBoot整合Slf4j+logback日志框架1、介绍Slf4j的全称是Simple Loging Facade For Java(Java简单日志门面),它仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已。所以单独的Slf4j是不能工作的,必须搭配其他具体的日志实现方案,比如apache的org.apache.log4j.Logger,jdk自带的java.util.logging.Logger等。2、优势解耦客户端

2021-03-11 17:13:12 236

原创 @ConfigurationProperties 注解 获取参数配置

@ConfigurationProperties 注解 获取参数配置在编写项目代码时,我们要求更灵活的配置,更好的模块化整合。在 Spring Boot 项目中,为满足以上要求,我们将大量的参数配置在 application.properties 或 application.yml 文件中,通过 @ConfigurationProperties 注解,我们可以方便的获取这些参数值使用 @ConfigurationProperties 配置模块假设我们正在搭建一个发送邮件的模块。在本地测试,我们不想该模

2021-03-09 16:23:58 1528

原创 centOS系统中安装docker教程

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。一、安装docker1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否

2021-03-08 11:23:18 70

原创 Javaweb ajax请求返回数据封装类

Javaweb ajax请求返回数据封装类package cn.quyi.utils;public class AjaxResult { private boolean success = true; private Integer code = 200; private String message = ""; //返回到前台对象 private Object resultObj; //正确返回 public AjaxResult ok(){

2021-02-15 22:31:28 250

原创 SpringBoot+WebSocket集成

SpringBoot+WebSocket集成什么是WebSocket?WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。为什么需要 WebSocket?初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起,HTTP 协议做不到服务器主动向客户端推送信息。举例来

2021-02-15 22:30:36 241

原创 Jasypt加密

Jasypt加密在日常开发中,我们需要在配置文件中写入我们的密码,如:这样明文显示,非常不安全,所以我们可以用到Jasypt来进行加密。导包<!--springboot整合jasypt--><dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId>

2021-02-15 22:28:18 1004 7

原创 注释//todo的作用

注释//todo的作用在java中,//todo注释更加便携我们的日常开发相关,它可以快速定位到我们注释的位置,极大的提高了我们的工作效率,今天就讲讲//todo注释的用法。格式//todo 注释的内容注:1.todo默认不区分大小写,todo、Todo、ToDO、TODO都是可以的。也可以修改为区分。2.todo后面必须要使用一个空格隔开注释内容。定位使用我们在某个地方加上了todo注释之后,我们可以通过任务列表快速定位到某个todo注释位置,在idea中,打开任务列表的快捷键是 al

2020-06-03 17:33:35 2657

原创 通用mapper的介绍和入门使用

通用mapper的介绍和入门使用简介通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。极其方便的使用MyBatis单表的增删改查。支持单表操作,不支持通用的多表联合查询。通用 Mapper 支持 Mybatis-3.2.4 及以上版本。与传统mapper.xml中写sql比较通用mapper1.mapper.xml文件里有大量的sql,当数据库表字段变动,配置文件就要修改2.需要自己实现sql分页,select * from t

2020-05-12 18:15:09 517

原创 idea中使用Lombok工具快速开发详解

以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。任何技术的出现都是为了解决某一类问题,如果在此基础上再建立奇技淫巧,不如回归Java本身,应该保持合理使用而不滥用。Lombok的使用非常简单:1)引入相应的maven包 <dependency> <groupId>org.projectlombok

2020-05-12 17:45:13 455

原创 spring事务的隔离级别、传播特性

spring事务的隔离级别、传播特性1.Spring事务隔离级别1.1:事务并发可能引起的三种情况1.Dirty Reads 脏读​ 一个事务正在对数据进行更新操作,但是更新还未提交,另一个事务这时也来操作这组数据,并且读取了前一个事务还未提交的数据,而前一个事务如果操作失败进行了回滚,后一个事务读取的就是错误数据,这样就造成了脏读。2.Non-Repeatable Reads 不可重复...

2020-04-19 23:04:28 121

原创 springboot集成mybatis-plus自动生成代码

springboot集成mybatis-plus自动生成代码1.导包<!--mybatis-plus--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> ...

2020-04-19 01:46:57 1644 1

空空如也

空空如也

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

TA关注的人

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