自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Elasticsearch 8 的详细安装步骤和基本使用

简称es8是一款非常强大的开源搜索引擎,具备非常多强大功能,网上对其有非常详细的定义这里不多做赘述,总之它是在你查询语句性能达到瓶颈,并且使用了索引、缓存等手段仍然无法突破的情况下的另一种十分有效的解决方案。

2024-10-10 17:22:44 624

原创 Redis分布式锁(详细解析)

对于一个单机的系统,我们可以通过synchronized或者ReentrantLock等这些常规的加锁方式来实现,然而对于一个分布式集群的系统而言,单纯的本地锁已经无法解决问题,所以就需要用到分布式锁了,通常我们都会引入三方组件或者服务来解决这个问题,比如数据库、Redis、Zookeeper等。

2024-09-29 12:01:35 715

原创 使用shardingsphere实现mysql数据库分片

是Apache基金会下的一个开源项目,提供分布式数据库中间件解决方案。已经在2020年4月16日从Apache孵化器毕业,成为 Apache 顶级项目。其主要功能包括数据分片(Sharding)、读写分离、分布式事务以及数据加密等。:轻量级的 Java 框架,直接集成在应用程序中,提供数据库分片、读写分离等功能。需要在中集成,编写相关的配置。如果分片策略用默认的4种,那可以只改配置就好了。如果分片策略很特殊,可以通过实现抽象类,写自定义的方法进行分片分库。:独立部署的数据库代理,支持所有兼容MySQL。

2024-09-25 16:29:40 857

原创 再次重温 Spring 中 Bean 的生命周期

初始化完成后,Bean就成功创建了,之后就可以使用这个Bean, 当Bean不再需要时,会进行销毁操作,当Bean不再需要时,会经过清理阶段,如果。接口,通过Aware类型的接口,可以让我们拿到Spring容器的些资源。()方法进行实例化,实际上就是通过反射的方式创建出一个。的时候需要注入另一个尚末初始化的依赖时,容器就会调用。属性会自动调用其配置的初始化方法。,当客户向容器请求一个尚未初始化的。这个接口,会调用那个其实现的。属性填充完成后,进行初始化。接口,如果实现了,将会执行。判断Bean是否实现了。

2024-09-25 16:24:32 504

原创 Spring Boot自动装配源码阅读笔记

在传统的 springmvc 项目中,当我们需要使用 mvc 模块、mysql 数据模块、redis 缓存模块的时候。我们需要导入依赖的 jar,然后在 spring 的配置文件中配置dataSource(视图解析器)、(文件上传)、事务管理器等模块。把这些我们需要的模块变成 bean,给 spring 管理。SpringBootSpringBoot在启动时会扫描外部引用 jar 包中的文件,将文件中配置的类型信息加载到Spring容器(此处涉及到JVM类加载机制与Spring。

2024-09-25 10:13:15 544

原创 Springboot框架自动装配原理之@Import注解(自动装配的核心底层实现)

在平时看源码或者很多配置类上面都会出现@Import注解,功能就是和Spring XML里面 的 一样.@Import注解是用来导入配置类或者一些需要前置加载的类.,springboot框架实现自动装配的原理之一正是利用这一特性解决了spring框架中重量级的xml配置Import注解的作用:也是注入第三方类让他变成容器管理的bean,比结合@bean功能更加单一。但是更加暴力简单。

2024-09-25 10:13:07 377

原创 mysql 备份表数据_MySQL备份数据库

很多公司没有专业的DBA,很多时候开发人员在开发时不得不手动在生产环境下操作数据库,总所周知,在生产环境下操作数据非常危险,如果update更新或delete删除语句忘写了where条件或者写错了where条件,那么只能跑路了。为了保证万无一失,笔者在操作数据库前会进行数据备份,如此一来,即使手抖出错,数据也能及时从备份中恢复。我总结了mysql几种备份数据的方法。

2024-09-14 16:21:51 713 2

原创 由“为什么VO不能继承PO?” 引出的为什么组合优于继承?

我在个人项目中喜欢直接使用各种 `model` 来继承 `po`,单纯的因为可以直接省去写各种重复 `getter` 和 `setter` 的步骤,并且不需要使用各种拷贝工具。但是,搞`vo`、`do`、`po`,还有其他各种 `o`,是为了解藕它们之间的联系,而继承却是建立它们之间的耦合关系,确实是会限制类的扩展性和灵活性。

2024-09-02 17:07:45 844

原创 springboot整合activity7(一)

此章节首先完成后端的activiti整合,生成工作流所需数据库表,数据库采用mysql。

2024-08-11 19:20:16 626

原创 MySQl高级篇-分库分表(为什么需要分表?什么时候分库分表)

分库分表是在海量数据下,由于单库、表数据量过大,导致数据库性能持续下降的问题,演变出的技术方案。

2024-08-10 17:24:26 1779

原创 使用Github-Action实现当代码推送远程仓库后自动部署Springboot项目

是 GitHub 提供的一项持续集成 (CI) 和持续部署 (CD) 服务。它允许你在代码仓库中定义和运行自动化的工作流程,以响应存储库中的事件或调度。 可以用于构建、测试、打包和部署项目,也可以执行其他自动化任务。第一步需要先配置,保证我们的服务器信息不暴露首先进入你要部署的项目仓库的首页,然后点击 -> 在这里配置我们服务器的IP和账号密码因为这里构建的包不是很大,所以我们使用的方式是先在的环境构建打包,然后将包发送到目标服务器。你也可以在里让目标服务器执行命令去做git,构建,部署,启动等等相关的在仓

2024-07-23 00:47:58 798

原创 记一次docker容器安装MySQL,navicat无法连接报错(10060错误)

最后猜一下怎么解决的,我重启了docker服务之后发现就可以成功连接上了。的用户授权情况,发现设置的是允许任何主机连接(%),所以也不是这个原因。阿里的服务器开始并没有安装防火墙服务,所以这个也排除。上网上搜了半天资料,还是没找到有用的解决办法。时,遇到了一个诡异的问题,在云服务器的。这个是首先排查的点,但是我从本地可以。账户密码多次确认后也是没问题的。,所以网络是通的没问题。端口也是开放了的,没问题。今天在云服务器上使用。

2024-07-14 20:29:40 477 3

原创 MySQl高级篇-事务、锁机制、MVCC

间隙锁(Gap Lock)是InnoDB在可重复读()隔离级别下实现多版本并发控制(MVCC)的一种锁机制。它会锁定一个范围内的所有记录,但不包括范围两端的记录。这种锁可以防止幻读现象的发生。

2024-07-14 19:19:08 758

原创 MySQl高级篇-主从复制

slave会从master读取binlog来进行数据同步masterbinary logslavemasterrelay logslaveslavemasterslavemastersalve复制的最大问题是延迟。

2024-07-14 19:18:45 609

原创 MySQl高级篇-查询优化篇

join。

2024-07-14 19:17:15 1209

原创 MySQl高级篇 -索引优化篇

InnoDB采用了一个B+数来存储索引,使得在千万级数据量的一个情况下,树的高度可以控制在3层以内,而层高代表磁盘IO的一个次数,因此基于索引查找可以减少磁盘IO的次数MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的结构,主要包含以下几种二叉树缺点: 顺序插入时,会形成一个链表,查询性能大大降低。大数据量情况下,层级较深,检索速度慢。BTree(多路平衡查找树)每个节点可以包含多个子节点。相比于二叉搜索树,B+树的节点可以存储更多的关键字,减少了树的高度,提高了检索效率。以一颗最大度数(max-

2024-07-14 19:14:28 764

原创 Java线上接口耗时分析神器 Arthas

简单来说,Arthas是阿里巴巴开源的Java诊断工具,号称“线上问题终结者”。通过它,我们可以在线上环境下实时监控和分析Java应用的性能问题。无论是耗时长的接口,还是奇怪的CPU使用率,都能一网打尽。github地址。

2024-07-06 20:21:13 553

原创 阿里云邮件发送的坑,Linux环境邮件发送报错:Couldn‘t connect to host, port: smtp.qq.com, 25; timeout -1;

如题,突然发现博客上的邮件发送功能用不了了,于是在Windows环境下本地调试,邮件发送能够正常使用,但是到了Linux环境下,邮件服务报错,无法发送邮件。为什么之前一直没出问题呢,是因为之前一直用的是华为云的服务器和腾讯云的服务器,所有没有问题,而最近服务器换成了阿里云之后就出现问题了。端口的屏蔽策略和普通的安全策略不同,无法通过配置安全组规则的方式来进行开放,如果需要开放。端口,需要向阿里云进行申诉,这是一种比较麻烦的处理方法。端口,导致邮件服务无法正常使用。

2024-07-01 16:19:36 308

原创 记一次服务器崩溃事件

今天在安装Jenkins的时候,进行到插件安装这一步,本来一切顺利,结果最后安装完成之后一直进不去网页,显示连接超时,网上搜索了一圈也没发现什么相似的情况,当我疑惑的时候回到Linux控制台,发现命令的响应很慢的时候我就发现不对劲了,到最后卡到甚至一行命令都执行不了。

2024-06-24 11:45:20 497

原创 Linux安装Maven(详细教程手把手教会)

Linux安装Maven(详细教程手把手教会)

2024-06-23 18:40:25 299

原创 设计模式以及其最佳的实践

抽象工厂模式通过定义一个抽象工厂接口和多个具体的工厂类来创建一系列相关或依赖的对象。每个具体的工厂类负责创建一组相关的产品对象,客户端可以通过选择不同的具体工厂类来获取不同系列的产品对象。抽象工厂模式强调了产品族的概念,适用于需要创建一组相关对象的场景。

2024-06-18 09:17:58 844

原创 多线程最佳实践

当你遇到一个场景,需要同时启动多个任务,并等待所有任务完成后执行后续操作。这个方法很有用,比如你需要执行三个下载任务,当三个任务都下载完成后你才通知界面说完成,这个时候如果一个个去下载肯定耗时非常高,我们可以同时起三个线程去并行执行任务,减少总的执行时间。

2024-06-05 16:14:17 244

原创 Linux快速定位日志 排查bug技巧和常用命令、系统监控命令

在 Linux 系统中,可以使用grep命令来查找日志文件中包含特定关键字的行。假设你的日志文件路径为,你想要查找包含关键字"abc"或找到行号后就好说了,通过下一条命令 直接输出当前行号下的日志这个命令是用来查看一个日志文件xxx.log中特定范围的行。从第 501 行开始,显示接下来的 100 行日志这样可以更快速更精准的定位到关键日志,而不是去打开日志文件来搜索,或者二次触发bug,来查看日志,这些命令能够帮助你更高效地查找和分析日志文件中的特定信息。

2024-05-28 09:37:47 2440

原创 基于springboot + Thymeleaf + vue开发的 个人博客,含前后端

该博客是之前博客()的一个2.0改造版本,对前端进行了全面的翻新!改用了bootstrap作为前端css框架,更加简约、美观,并且对项目的后台使用vueaxios进行了重构,框架进行重新选型,并且使用sa-token进行鉴权,博客的模板引擎还是使用thymeleaf(SEO优化友好)。

2024-02-11 18:55:21 1039 1

原创 最新版ES8的client API操作 Elasticsearch Java API client 8.0

我们在学习ES客户端时,一直使用的都是`Java High Level Rest Client`,在浏览官网时,发现官方给出的警告是:`Java REST` 客户端已被弃用,取而代之的是 `Java API client` 客户端,ES `8.x` 新版本中,`Type` 概念被弃用,所以新版 `JavaAPI` 也相应做出了改变,使用更加简便。ES 官方从 `7.15` 起开始建议使用新的 `JavaAPI`如何使用最新的 `Elasticsearch Java client 8.0` 来创建索引并进

2023-12-07 10:12:05 4087 2

原创 使用java操作文件给指定目录下所有类统一添加 @author 创建者信息

这段代码的主要目的是自动化处理Java文件中的创建者信息,确保每个文件都有统一的作者信息,并提供了对比功能,让用户可以直观地看到更改的部分。:程序会检查文件中是否包含注释,如果存在注释,则会检查其中是否已包含作者信息,如果没有,则在注释中的合适位置插入新的作者信息。:在更新作者信息后,会输出原始内容与更新后内容的比较结果,通过高亮显示差异部分,以便用户检查更改。之间的位置,在此处尝试定位文件的开头,并且会在文件的开头插入新的作者信息。:更新完成后,会将修改后的内容写回到相应的Java文件中。

2023-11-30 16:40:56 585

原创 博客邮件提醒功能的实现(异步编程和消息队列Rabbitmq两种方式)

这里可以自己自定义好看的邮件模板,这里我就简单的测试一下。

2023-09-17 19:30:57 316

原创 歌曲推荐-喜欢的人忘记戴眼镜了片尾曲《メガネゴーラウンド》

这个暑假一直在等一首歌的单曲发行,就是新番《喜欢的人忘记戴眼镜了》的片尾曲《メガネゴーラウンド》,由于歌曲的完整版要在番剧播出后一个月的时间左右才会发行,不能听到完整版的我感觉身上就像有蚂蚁在爬,急急急 我好急啊我!网上出售的2个版本,限定版有片头曲NAME,还有片尾曲《メガネゴーラウンド》的普通版、男女主双人合唱版、大石昌良版本、TV版,并且据说还有 缀(片头曲的歌手)的COVER版。终于在今天8月2号,片尾曲的发布日,网上已经能够听到完整版的音源了。メガネゴーラウンド的作曲作词:大石昌良。

2023-08-02 15:22:27 304

原创 Prompt合集

尽管提示中没有提及,但您也应该告诉听众的年龄以及是否要避免特定主题。例如,“写一个针对青少年的关于勇气的故事,但要避免打架和战争”。有了这个,ChatGPT 将讲述所提供主题的故事,而无需从任何地方复制内容。它会自己选择主题,你只需要提供你想要关注的寓意。

2023-05-15 14:19:31 822 1

原创 随便聊聊 顺便晒一下我的听歌设备

平时最大的爱好就是听歌了,所以可能会设备在上面稍微花点小钱。我平时的听歌类型挺多元化的,硬要说的话更偏向 Jpop、ACG、女声、轻音乐、大编制、交响乐,当然好听的都听不局限于类型。又是30天一天不落O(∩_∩)O😄耳塞方面为了追求音质只考虑,这里因为歌单大部分偏向流行风格,所以就选了水月雨家的kato,上一条用的是弱水的evo极光,之前用过不少耳机了,全部加起来也有十几条吧,但是kato是第一条千元赛。kato前端小尾巴用的是艾巴索的dc03pro。

2023-05-14 15:25:44 438

原创 使用nginx简单搭建一个属于自己的ChatGPT问答机器人

作者:ChenZhen本人不常看CSDN消息,有问题通过下面的方式联系:邮箱:1583296383@qq.com🌐版权:本文为博主的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。📝如果对你有帮助,请给一个小小的star⭐🙏。

2023-05-10 16:39:57 5381 8

原创 Docker的使用教程、学习笔记,附实战:部署chatgpt网页版ui,部署mysql8数据库

微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。

2023-05-02 17:36:24 2335

原创 什么?还能让ChatGPT自己给自己写提示(Prompt)?

# 受众:🤔不知道如何向ChatGPT提问的人、不知道如何编写提示的人、不知道如何制定Prompt的人、无法撰写出高质量问题的人等。包括但不限于以上群体:# 概述:该文介绍了 Prompt(提示) 📝的概念以及其在人工智能领域的应用。它是指给AI模型的指令,可以是一个问题、一段文字描述或带有参数的描述。文中还提到了一个名为Prompt Creator的工具,可以让ChatGPT自己生成Prompt,通过批判和迭代来优化用户的Prompt。

2023-04-28 17:29:13 3626

原创 微服务学习2-nacos配置管理、feign远程调用、GateWay网关

类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试一般情况下,默认值就能满足我们使用,如果要自定义时,只需要创建自定义的@Bean覆盖默认Bean即可。下面以日志为例来演示如何自定义配置。

2023-04-02 22:27:29 868

原创 RabbitMQ详细教程、包含安装、配置和使用及整合SpringBoot

RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件。RabbitMQ 与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。

2023-03-11 16:39:44 1855

原创 nginx的安装、配置、使用、实战(反向代理,部署vue项目)

接下来使用nginx简单配置一个反向代理的实例实现效果:使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中nginx 监听端口为 9001,在本地windows机中访问虚拟机的nginx,我的虚拟机的ip为192.168.186.43,

2022-12-28 20:25:56 5730

原创 如何用SpringBoot搭建一个好看的个人博客

如何用SpringBoot+Thymeleaf搭建一个好看的个人博客作者:ChenZhen博客地址:版权:本文为博主 ChenZhen 的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。源码地址:如果对你有帮助,请给一个小小的star⭐本节将讲述博客系统的技术栈需求、数据库表设计、功能模块等方面。

2022-12-06 17:14:27 1951

原创 数据库课程设计-学生选课管理系统(实训报告+答辩ppt+源码+sql文件+打包好的程序)springboot项目-javaweb

这是我数据库课程实训的一个项目该项目是由springboot+Mybatis+Thymeleaf等框架开发的学生选课管理系统一共有三种角色,对应不同的功能和权限管理员拥有其他用户所有功能权限数据库: mysql8.0.11数据库访问方式: JDBC

2022-12-06 16:30:45 22119 1

原创 使用Redis给博客添加缓存

这里我们选择在service层的新增、删除、修改方法都添加上@CacheEvict注解,在数据库更新数据时删除Redis中的缓存,让用户下一次加载的时候再重新加载缓存。这里我只演示了首页的分页信息缓存,在博客其他地方都可以按照上面的方法添加缓存,我就不一一演示了。多次刷新页面,耗时为4ms、4ms、3ms、8ms,可以看到时间大大缩短,可见缓存已经起作用了。缓存能让我们更加快速的查询到数据,但是这也会带来数据库中的数据和缓存中的。然后我们开始添加缓存,首先思考需要添加缓存在哪些地方。

2022-11-17 11:12:18 532

原创 微服务学习-注册中心的搭建(Nacos、Eureka)

微服务学习-注册中心的搭建(Nacos、Eureka),微服务架构风格是一种将单个应用程序开发为“一套小型服务”的方法,每个服务“运行在自己的进程中”,并通过轻量级机制(通常是HTTP资源API)进行通信。这些服务“围绕业务功能构建”,并通过全自动部署机制“独立部署”。“这些服务只有最低限度的集中管理”,可能是用不同的编程语言编写的,并使用不同的数据存储技术。搭建eureka注册中心### 4.1.1 搭建eureka-server首先搭建注册中心服务端:eureka-server,这必须是一个独立的s

2022-11-12 17:29:48 4129

空空如也

空空如也

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

TA关注的人

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