- 博客(35)
- 收藏
- 关注
原创 关于如何创建一个可配置的 SpringBoot Web 项目的全局异常处理
自定义全局异常处理 starter,采用配置文件的方式,可配置扫描包等操作
2024-05-22 12:44:31
1284
原创 Spring Validation 的进阶使用( 根据条件动态添加是否需要 verify 某个字段 )
Spring Validation 解决多字段联合逻辑校验问题
2024-04-11 19:40:02
1171
2
原创 Spring Boot 3 + Spring Security 6 最新版本修改 Json 登录后 RememberMe 功能问题失效的解决方案
当 Spring Boot 版本更新到 3 之后,最低要求的 JDK 版本变为 17,相应的 最新版本的 Spring Security 的配置也发生了变化,一下主要讲解一些新的 Spring Security 的配置方法。
2023-11-28 23:54:37
1613
2
原创 Dockerfile 使用技巧篇
使用 alpine 的镜像,而不是默认的 linux 镜像,可以极大减小镜像体积,比如 node:18-alpine3.14 这种使用多阶段构建,比如一个阶段来执行 build,一个阶段把文件复制过去,跑起服务来,最后只保留最后一个阶段的镜像。这样使镜像内只保留运行需要的文件以及 dependencies。使用 ARG 增加构建灵活性,ARG 可以在 docker build 时通过 --build-arg xxx=yyy 传入,在 dockerfile 中生效,可以使构建过程更灵活。
2023-08-13 23:59:48
2048
原创 关于 SpringBoot 项目使用 Maven 打包之后启动不了的解决办法
当我们完成一个 SpringBoot 项目之后,想打成一个 jar 包,直接使用运行。
2023-04-17 16:31:29
2557
原创 使用 Jenkins 自动部署 java-web 应用到 Docker 容器(全过程)
Dockerfile 文件FROM openjdk:oraclelinux8RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeLABEL "author"="qiuqiuya"LABEL "version"="1.0"LABEL "email"="fortunate_qkm@163.com"ADD *.jar app.jarEXPOSE 8081ENTRYPOINT ["java", "-jar", "-Dus.
2021-12-13 22:25:58
1233
1
原创 使用 Bamboo 构建项目的 CICD 过程文档
一、CI/CD 介绍CI/CD 是什么?说明一下:实际上这个应该叫 CI/CD/CD ,才是真正的 持续集成/持续交付/持续部署,这里只讲 CI/CD 是针对特定的项目而言,因为没有生产环境,直接是 开发 -> 测试,所以后面两个 CD 就合并了CI/CD 中文叫:持续集成,持续交付/部署,是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署,“ 持续 ” 并不意味着 “ 一直在运行 ” ,而是“随时可运行”。持续集成:Cont
2021-10-27 23:10:17
4633
原创 关于 Nacos 中下线服务时,下线报错选举Leader失败问题的解决
问题描述Nacos注册中心有一个微服务有多台实例的时候,点击一个实例下线操作,报错caused: errCode: 500, errMsg: do metadata operation failed ;caused: com.alibaba.nacos.consistency.exception.ConsistencyException: com.alibaba.nacos.core.distributed.raft.exception.NoLeaderException: The Raft Grou
2021-09-19 21:23:32
18742
16
原创 MyCat学习:使用MySQL搭建主从复制(双主双从模式)
首先,上一篇我们建立了一主一丛模式的MySQL读写分离 点击这里 那么接下来,我们搭建双主双从模式的读写分离,并且使用MyCat登录访问原理:master1,master2,slave1,slave2 —> master1 和 slave1主从复制,master2 和 slave2主从复制,同时 master2 做为master1的从机,进行互备主从当然,如果你之前没有搭建过主从复制,下面这两步骤可以不需要做首先需要清除当前之前设置的主从模式,删除testdb数据库stop slav.
2021-07-09 23:53:10
303
2
原创 MyCat学习:使用MySQL搭建主从复制(一主一从模式)
首先使用MyCat登录需要一个前提,那就是有MySQL的主从复制开始搭建MySQL主从复制(一主一从)一、配置文件修改主机配置文件修改server-id=1 # 定义服务器唯一IDlog-bin=mysql-bin # 启用二进制日志binlog-ignore-db=mysql # 忽略 mysql 库(如果配置了binlog-do-db的话可以不需要设置这个)binlog-do-db=testdb # 设置需要主从复制的库从机配置文件修改server-id=2 #从服务器唯.
2021-07-07 21:46:03
284
1
原创 搭建FastDFS分布式文件方式一(Docker版本)
FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。1、拉取 FastDFS 镜像docker pull morunchang/fastdfs2、启动容器1)、运行跟踪器 Trackerdocker.
2021-05-25 19:27:13
262
2
原创 Java 基础学习(Markdown语法)
标题(#+空格,几级标题就几个#)二级标题三级标题四级标题五级标题六级标题字体Hello World!(**)***Hello World!***(***)Hello World!(*)Hello World!(~~)Hello World!()引用(>+空格)这是一段引用内容有序列表(1.+空格)有序列表内容一内容二内容三无序列表(-+空格)无序列表内容一内容二内容三图片(!+[图片描述]+(本地或者网络路径))[外链图片转存失败,源站可能有
2021-05-05 22:45:41
142
原创 MyBatis整合ehcache实现二级缓存
添加jar包<dependency> <groupId>org.mybatis.caches</groupId> <artifactId>mybatis-ehcache</artifactId> <version>1.1.0</version></dependency>Dao的接口使用 xml 来实现在 Mapper.xml 文件中加入缓存<!--加入使用缓存--.
2021-01-10 21:19:37
211
原创 SpringCloud 之 搭建 Redis 集群(Redis-Cluster)及 主从复制
Redis-Cluster简介1、 什么是Redis-Cluster为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。Redis集群搭建的方式有多种,例如使用客户端分片、Twemproxy、Codis等,但从redis 3.0之后版本支持
2021-01-10 16:09:35
1712
原创 SpringCloud分布式事务,版本二:添加 Seata 分布式事务版本
基于 Seata 1.4.0 版本首先贴出此项目地址:Seata 分布式事务版本先了解此项目再看第一版本:未添加事务版本此文章是基于上一篇的项目基础上添加的内容,所以务必先看上一篇Seata介绍解决分布式事务问题,有两个设计初衷对业务无侵入:即减少技术架构上的微服务化所带来的分布式事务问题对业务的侵入高性能:减少分布式事务解决方案所带来的性能消耗seata中有两种分布式事务实现方案,AT及TCCAT模式主要关注多 DB 访问的数据一致性,当然也包括多服务下的多 DB 数据访问一致性.
2021-01-08 22:56:18
368
原创 SpringCloud分布式事务,版本一:未加事务版本
首先贴出项目地址:未加分布式事务版本项目介绍1、seata-bussiness模块整个demo的核心,包括feign的调用,业务流程的实现2、seata-common模块每个子项目都引入该模块,此项目没有任何东西,主要是为了后期引入 seata 相关依赖3、seata-eureka模块eureka 注册中心,用于服务发现与注册4、seata-order模块订单,用于修改订单数据库5、seata-storage模块库存,修改库存6、seata-user模块用户信息表,记录用户.
2021-01-08 20:30:41
158
原创 搭建认证服务器 - Spring Security Oauth2.0 集成 Jwt 之 【密码认证流程】 总结
在搭建介绍流程之前,确保您已经搭建了一个 Eureka 注册中心,因为没有注册中心的话会报错(也有可能我搭建的认证服务器是我项目的一个子模块的原因):Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/}http://localhost:8761/eureka/ 是因为配置文件未提供注册中心地址,springcloud 默认的注册中心地址就是这个另外:文末会提供所有代码.
2020-12-24 10:39:44
469
原创 搭建认证服务器 - Spring Security Oauth2.0 集成 Jwt 之 【授权码认证流程】 总结
在搭建介绍流程之前,确保您已经搭建了一个 Eureka 注册中心,因为没有注册中心的话会报错(也有可能我搭建的认证服务器是我项目的一个子模块的原因):Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/}http://localhost:8761/eureka/ 是因为配置文件未提供注册中心地址,springcloud 默认的注册中心地址就是这个另外:文末会提供所有代码.
2020-12-24 01:25:48
884
原创 关于 MySQL5.7.log 版本导出 SQL 语句再导入 8.0.13 版本出现 Incorrect datetime value: ‘0000-00-00 00:00:00‘ 错误的解决办法
环境配置导出数据库版本:5.7.12.log导入数据库版本:8.0.13问题: 导出 SQL 脚本,再在高版本数据库中导入时,出现 Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘create_time’原因:官方文档上说明MySQL允许将’0000-00-00’保存为“伪日期”(如果不使用NO_ZERO_DATE SQL模式),就会报错解决:修改全局set @@global.sql_mode = ‘STRICT_TRAN
2020-12-14 23:20:18
755
原创 Ubuntu 安装 Docker 容器
Docker 的安装:卸载: sudo apt-get remove docker docker-engine docker.io containerd runcsudo apt-get update# 安装依赖包sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common# 添加 Docker 的官方 GPG 密钥curl -fsSL https://do
2020-12-07 17:23:48
288
原创 Ubuntu-Server 20.04 安装详细过程(图文)
记录ubuntu-server版本的安装过程,为了后续自己再折腾一次前期准备VMWare + ubuntu-server 20.04 镜像安装选择语言设置键盘配置动态IP地址设置镜像源地址,这个可以配置阿里云(http://mirrors.aliyun.com/ubuntu/),下载加速安装 SSH 工具,主要是外部连接该 linux,因为在里面实在太难操作了系统配置完成,安装界面更新完之后出现 reboot 选项登入系统就可以使用了.
2020-12-07 17:16:25
66229
11
原创 SpringBoot中使用 Druid 数据库连接池, 后台SQL监控无效
首先说下环境和配置, 问题环境SpringBoot: 2.3.4.RELEASEdruid-spring-boot-starter: 1.1.22配置yaml文件配置datasource: url: jdbc:mysql://localhost:3306/testdb username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.d
2020-09-30 09:12:43
1438
3
原创 关于Dockerfile那些事: 基础镜像的坑
前言:在Docker中build我们项目jar包的时候肯定要加入一些基础镜像,jdk肯定需要加入,同时可能由于docker容器存在时区问题,所以需要在Dockerfile中设置时区,本篇博客记录一下基础镜像的坑首先把jar包放入Dockerfile同级目录下,编写Dockerfile文件首先来看一下踩坑之前的jdk8版本的基础镜像FROM primetoninc/jdk:1.8 RUN echo "Asia/Shanghai" > /etc/timezone && \ rm
2020-09-09 11:09:04
755
原创 SpringBoot v2.2.6版本遇到的坑 --- HiddenHttpMethodFilter组件的锅
直接正文Spring Boot本来是默认自动配置了HiddenHttpMethodFilter组件, 这个是毋庸置疑的, 但是(我)在学习SpringBoot的时候, 看的视频是SpringBoot1.5.9版本的, 我们都知道, 浏览器都是只默认支持 POST 和 GET 请求的, 但是 Restful 风格的 URL 有 DELETE 和 PUT 的形式, 当然, 如果前端在页面加上 也是可以的, 但是这要求服务端有支持这种解析的过滤器, 这就是 HiddenHttpMethodFilter 的作
2020-05-27 18:55:43
2262
2
原创 SpringBoot v2.2.6 踩的坑 --- dubbo.scan.base_packages
@[TOC](SpringBoot版本(2.2.6)遇到的坑------Dubbo整合SpringBoot一直报错: No provider available for the service com.xxx.xxx 解决)在编写提供者和消费者无误的情况下将配置文件中的dubbo.scan.base_packages 换成 dubbo.scan.basePackagesDubbo 使用RPC...
2020-04-08 14:51:43
3936
原创 SpringBoot v2.2.6版本遇到的坑------Thymeleaf的sec:authorize标签无效
SpringBoot v2.2.6版本使用Thymeleaf的sec:authorize标签无效的解决办法问题场景复现解决过程问题场景复现SpringBoot版本 v2.2.6在html中写sec的各个功能的时候, 发现页面不起效果在网上页查了许多, 看了许多博客, 无非就是说更改SpringBoot的版本, 说SpringBoot的版本太高了啥的, 改成低版本的确实有用, 本人亲测过...
2020-04-06 23:15:48
679
原创 MySQL的单表索引优化案例
创建数据表及插入数据create table if not exists article( id int(10) unsigned not null primary key auto_increment, author_id int(10) unsigned not null,/*作者编号*/ category_id int(10) unsigned not null,/*种类编号*/...
2020-02-21 14:49:16
158
原创 总结Linux-ubuntu基本配置方法(远程连接,数据库,jdk,tomcat......)
1、远程连接最小化安装ubuntu之后,一开始是不能直接使用Xshell等工具进行远程连接的,需要安装ssh服务,首先得两个主机可以互相ping通,接着输入:sudo apt-get install openssh-server,再连接就好使了2、安装MySQL数据库1、在官网下载好后缀为.deb的文件,如:mysql-apt-config_0.8.14-1_all.deb,链接:下载地址...
2019-12-24 16:16:11
192
原创 C++ 知识点总结
平时在学习C++的时候一些零碎的知识点将会记录在此处1、CLOCKS_PER_SEC延时,可能并不是每一台电脑的 一秒 就是 1000ms直接在代码里面使用1000这种方法并没有很好的移植性 因为每一个系统的clock()函数调用之后返回的类型不一定是 long 有的也有可能是 unsignedlong 所以为了解决这一个问题,ctime 头文件引入了一个CLOCKS_PER_SEC 宏,...
2019-09-18 20:45:15
524
原创 gcnew 与 new 的区别
C++/CLI中使用gcnew关键字表示在托管堆上分配内存,并且为了与以前的指针区分,用^来替换* ,就语义上来说他们的区别大致如下:gcnew返回的是一个句柄(Handle),而new返回的是实际的内存地址.gcnew创建的对象由虚拟机托管,而new创建的对象必须自己来管理和释放.那什么又是托管堆呢?内存格局通常分为四个区全局数据区:存放全局变量,静态数据,常量代码区:存放所有的程...
2019-08-30 18:41:25
2648
原创 Java - 排序大全
本帖子包含的排序有:1、库函数的qsort()排序2、冒泡排序3、直接插入排序4、折半插入排序5、2-路·插入排序6、希尔排序7、快速排序8、选择排序9、堆排序10、归并排序11、基数排序12、基于链表的冒泡排序下面将一一贴出排序的代码:1、库函数的qsort()排序/** qsort库函数排序:* 使用qsort函数进行排序,* 需要注意的一点就是,qso...
2019-06-19 21:46:45
370
原创 数据结构与算法
数据结构与算法的一些基本知识**1、 算法的基本特征:可行性、确定性、有穷性、输入、输出2、 算法的基本运算和操作:算术运算、逻辑运算、关系运算、数据传输3、 算法的基本控制结构:顺序结构、选择结构、循环结构4、 算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法5、 算法的复杂度主要包括:时间复杂度、空间复杂度6、 算法的时间复杂度:指执行算法所需要的计算工作量7...
2019-06-18 23:40:05
168
原创 关于Ubuntu18版本下新安装Qtcreator编译报错:cannot run compiler clang++ output的解决办法
第三次入坑前两次本以为记住了,结果第三次再次在Linux下安装qtcreator依然捣鼓搞了半天,才决定将这些步骤记下来,<\笑哭>1、在你安装好qtcreator之后,新建有一个qt项目,构建的时候就会出现上述标题错误,这个时候在Ubuntu终端下安装一个clang,(虽然报错clang++,但是我安装clang++给我报一大堆错误)-----> sudo apt-get ...
2019-06-06 09:31:39
16833
4
原创 MySQL zip压缩包安装
关于MySQL 解压版安装时候 cmd 命令(mysqld --initialize --console)时出现错误的解决办法1、 将下载的MySQL zip包解压到自定义系统盘符下2、将bin路径添加至环境变量(注意 各变量之间没有分号记得加上分号)3、自行创建my.ini配置文件(如下):[mysql]default-character-set = UTF8[mysqld]por...
2019-03-26 14:18:26
224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人