- 博客(83)
- 收藏
- 关注
原创 06.Aware接口
但是,当配置类中有一个Bean是BeanFactoryPostProcessor类型的时候,spring需要先创建这个工厂后处理器,那么将会直接初始化该配置类,将工厂后处理器创建出来;而创建的时候,Bean后处理器还没有注册,因此Autowired和PostConstruct不会生效。可以发现,当这个配置类初始化的时候,并没有注入applicationContext,且初始化方法也没有执行。这两个接口是相对应的,前者提供了初始化方法,后者提供了销毁方法。2. 注册 BeanPostProcessor。
2023-06-13 00:12:18 367
原创 05.BeanFactory后处理器
BeanFactory后处理器使用方式二 实现自己的BeanFactory后处理器自定义一个类,实现BeanDefinitionRegisterPostProcess接口,重写postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)方法;该方法本质上就是通过识别类和类中的方法上的注解,对定义的Bean进行处理。重点为下面几个类:注:BeanDefinitionRegisterPostProcess继承自BeanFacotryPo
2023-06-13 00:09:51 1059
原创 RocketMQ部署
本教程使⽤的是RocketMQ4.7.1版本,建议使⽤该版本进⾏之后的demo训练。运⾏版:https://www.apache.org/dyn/closer.cgi?源码:https://www.apache.org/dyn/closer.cgi?
2023-04-26 00:54:43 1421
原创 RocketMQ整合代码
Spring Cloud Stream 是⼀个框架,⽤于构建与共享消息系统连接的⾼度可扩展的事件驱动微服务。该框架提供了⼀个灵活的编程模型,该模型基于已经建⽴和熟悉的 Spring 习惯⽤法和最佳实践,包括对持久 pub/sub 语义、消费者组和有状态分区的⽀持。:负责提供与外部消息传递系统集成的组件。:外部消息系统和最终⽤户提供的应⽤程序代码(⽣产者/消费者)之间的桥梁。Message:⽣产者和消费者⽤来与⽬标绑定器(以及通过外部消息系统的其他应⽤程序)进⾏通信的规范数据结构。
2023-04-24 00:31:25 834
原创 RocketMQ高级概念
RocketMQ主要由ProducerBrokerConsumer三部分组成,其中Producer 负责⽣产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应⼀台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分⽚存储于不同的 Broker。⽤于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中。由多个Consumer 实例构成。
2023-04-24 00:19:04 631
原创 使用jasypt为springboot配置文件加密
使用jasypt为配置文件加密先看一份典型的配置文件这是节选自某个典型的Spring Boot项目的application.properties配置文件;这乍一看没啥问题,很多人会觉得理所当然。包括我自己也看到过很多的项目(包括很多开源项目)是这么写的。但仔细一琢磨,发现:很多项目的配置文件里,包括数据库密码、缓存密码、亦或是一些第三方服务的Key都是直接配在里面,没有做任何加密处理!之前倒是看到过一个例子,一个程序员把自己公司的项目代码上传到了自己的GitHub仓库里了,结果配置文件忘了处理,导致公司数
2023-04-18 23:27:35 893
原创 幂等性问题与解决方案
幂等概念来自数学,表示N次变换和1次变换的结果是相同的。这里讨论在某些场景下,客户端在调用服务没有达到预期结果时,会进行多次调用,为避免多次重复的调用对服务资源产生副作用,服务提供者会承诺满足幂等。HTTP/1.1中对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的副作用(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。幂等多次请求对资源没有副作用(比如查询数据库操作,没有增删改,因此没有对数据库有任何影响)。
2023-04-18 18:55:17 443
原创 02.容器实现BeanFactory和ApplicationContext实现
容器实现BeanFactory和ApplicationContext实现。
2023-04-13 23:54:28 419
原创 01.容器接口BeanFactory和ApplicationContext
容器接口BeanFactory和ApplicationContext。
2023-04-13 23:54:04 372
原创 SonarQube安装教程
若要下载别的版本可参考:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip修改链接中版本号即可。下载地址:https://www.sonarsource.com/products/sonarqube/downloads/historical-downloads/进入cd /opt/sonar/sonarqube-7.7/bin/linux-x86-64/下,执行sonar.sh即可启动。
2023-04-04 00:40:37 1951
原创 使用FileBeat+Logstash+钉钉实现日志预警
优势:Logstash 主要的优点就是它的灵活性,主要因为它有很多插件,详细的文档以及直白的配置格式让它可以在多种场景下应用。我们基本上可以在网上找到很多资源,几乎可以处理任何问题。劣势:1.性能以及资源消耗(默认的堆大小是 1GB)。尽管它的性能在近几年已经有很大提升,与它的替代者们相比还是要慢很多的。2.这里有 Logstash 与 rsyslog 性能对比以及Logstash 与 filebeat 的性能对比。它在大数据量的情况下会是个问题。
2023-03-18 17:33:26 1196
原创 敏捷相关的简称
DDD指的是Domain Drive Design,也就是领域驱动开发,DDD实际上也是建立在这个基础之上,因为它关注的是Service层的设计,着重于业务的实现,将分析和设计结合起来,不再使他们处于分裂的状态,这对于我们正确完整的实现客户的需求,以及建立一个具有业务伸缩性的模型。测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论,TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。也就是行为驱动开发。
2023-03-17 17:56:32 517
原创 git统计命令
例如:git log --pretty=format:“”%h - %an, %ar : %s""–abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。例如: git log --since=2.weeks 显示最近两周的提交。-p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新。–until, --before 仅显示指定时间之前的提交。–since, --after 仅显示指定时间之后的提交。
2023-03-17 11:14:25 684
原创 Scrum敏捷开发-开发流程(简洁粗略版)
回顾开发阶段遇到的问题每人发放小卡片,给出3-5分钟列举出本次开发中个人觉得好的和不好的点每人宣读卡片,并说明为什么这样觉得,项目经理负责记录总结大家一起进行总结,讨论哪写优点可以复用,哪写缺点可以避免和优化项目经理进行记录。
2023-02-10 15:52:54 735
原创 12 系统数据库和数据库工具
sql文件需要使用source工具导入,文本文件需要使用mysqlimport导出。:由于服务器生成的二进制日志文件是以二进制的格式保存的,想要查看就需要使用该工具查看。:客户端查找工具,可以查找存在哪些数据库、数据库中的表和索引、表中的列等信息。:用来检查服务器状态、查看配置和版本等信息、创建和删除数据库等。:数据库备份工具,可以将数据备份为sql或者文本格式的文件。:不需要进入mysql客户端,就可以执行sql并退出。
2022-12-21 22:40:33 292
原创 10 Mysql中各种锁
MySQL中的也存在一些类型的锁,用来保证多个连接同时操作数据时的安全即数据的一致性问题;同时,虽然锁能够解决一些数据的一致性和有效性,但是我们还是要选择合适的锁来降低锁对于并发问题的影响。
2022-12-21 21:56:48 474
原创 11 深入了解InnoDB引擎
MySQL5.5版本开始默认使用Innodb引擎,因为它擅长事务处理,具有崩溃恢复特性,在日常开发中使用更加广泛下图为Innodb引擎架构图,左侧为内存结构,右侧为磁盘结构Buffer Pool缓冲池是主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,从而减少磁盘的IO,加快处理速度在执行增删改查的时候,先操作缓冲池Buffer Poll中的数据,缓冲池中找不到再去磁盘中加载并缓存,然后再以一定的频率将数据从内存中刷新到磁盘Changer Buffer更改缓冲区(针对非唯一二级索引页),在执行DML
2022-12-20 22:09:37 479
原创 5月13号-欣悦
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节。此次查询只需要掌握mysql中show status,show processlist命令,以及命令mysqladmin。4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)不论是单个参数,还是多个参数,一律都建议使用注解@Param(“”)能用 #{} 的地方就用 #{},不用或少用 ${}
2022-12-12 23:12:02 255
原创 08 SQL优化
上一篇文章记录了索引的创建、使用、设计,除了索引方面还需要注意平日对于SQL的使用,对SQL进行优化;SQL的优化是建立在索引使用的基础上这篇笔记将从以下7个方面对SQL进行优化。
2022-11-28 21:03:07 458
原创 06 存储引擎
存储引擎是存储数据、建立索引、进行查询和更新的实现基础;存储引擎是基于单个表,而不是基于库# 查看支持的存储引擎# innodb_file_per_table:决定使用innodb引擎的每张表一个文件;默认值为ON打开我们经常使用的存储引擎有以下几种:InnoDB(5.7开始默认)、MyISAM(5.7之前默认)、MEMORY等简单介绍下以下几种事务外键锁形式InnoDB支持支持行级锁MyISAM不支持不支持表级锁MEMORY不支持不支持-
2022-11-13 19:48:21 248
原创 05 事务以及事务可能引发的问题
参考我的博客-数据库中事务的隔离等级及如何设置:https://blog.csdn.net/m0_46836425/article/details/121851867。,保证自己不会受别的事务影响。
2022-11-13 00:54:36 81
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人