- 博客(158)
- 资源 (3)
- 收藏
- 关注
原创 【细读Spring Boot源码】Spring如何获取一个Bean?BeanFactory的getBean方法
finishBeanFactoryInitialization(beanFactory); 这里包含了前置处理器和后置处理器
2023-05-30 17:03:55
2312
1
原创 【细读Spring Boot源码】@ComponentScan是如何生效的?
在使用SpringBoot使用过程中@Service这几个注解类上都标有@Component注解启动类上标有的注解类上有个注解。那么@ComponentScan如何把相关的对象注册到BeanFactory的?
2023-05-09 18:17:59
926
1
原创 【细读Spring Boot源码】Spring扩展点接口BeanFactoryPostProcessor-储备
在读源码是必能看见BeanPostProcessor相关语句,这里收集记录下这个接口的作用和使用。这个扩展点是发生在bean实例化之前,BeanDefinition读取完之后。所以我们在这里可以获取到BeanDefinition,以改变他默认的实例化方式。
2023-05-06 18:08:48
320
原创 【细读Spring Boot源码】Spring扩展点接口BeanPostProcessor-储备
在读源码是必能看见BeanPostProcessor相关语句,这里收集记录下这个接口的作用和使用。BeanPostProcessor一般称为Bean的后置处理器,它是Spring为我们提供的一个扩展点,可以在创建每个 Bean 的过程中进行干涉。详细点的说可以在 Bean 的实例化前后、Bean的初始化前后,使用我们自定义的逻辑。
2023-05-06 09:35:13
334
原创 【细读Spring Boot源码】重中之重refresh()
版本:spring-boot-2.7.3 | spring-context-5.3.22主流程详情7中这个操作是加载或刷新容器,把所有的配置转换成响应的对象并存入容器。下面看下他的具体执行流程。
2023-04-28 19:17:00
2009
2
原创 【细读Spring Boot源码】prepareContext之load
BeanDefinitionLoader是从基础源加载bean定义,包括XML和JavaConfig。作为AnnotatedBeanDefinitionReader、XmlBeanDefinitionReader和ClassPathBeanDefinitionScanner的简单门面。
2023-04-27 10:22:46
239
原创 【细读Spring Boot源码】监听器合集-持续更新中
然后进行上下文的run,ConfigFileApplicationListener会去加载bootstrap的配置文件,整合初始化器到新上下文,详细如下分析。在ConfigFileApplicationListener启动之前,日志会一直处于黑暗状态,但这是我们为监听器能够根据它在自己的配置中发现的内容来调整日志级别而付出的代价。最终还是调用SpringApplication的run,但是里面就简单的做了一件事,注册我们的BootstrapImportSelectorConfiguration配置文件。
2023-04-26 16:10:07
612
原创 排序之Java堆排序
堆排序是一种基于堆数据结构的排序算法,利用大顶堆(或小顶堆)的特性进行排序。算法首先将数组构建成大顶堆,然后通过反复将堆顶元素与堆底元素交换并调整堆结构,最终实现排序。堆排序的关键在于堆的维护操作:插入时与父节点比较向上调整,更新时与子节点比较向下调整。代码实现包括构建堆、交换元素和重新调整堆三个主要步骤,时间复杂度为O(nlogn)。该算法适合处理大规模数据,是一种高效的比较排序方法。
2025-08-17 19:05:12
113
原创 Java冒泡排序
冒泡排序是一种简单的排序算法,通过多次遍历数组,每次比较相邻元素并交换位置,将最大元素逐步"冒泡"到数组末端。具体实现使用双重循环,外层控制遍历轮数,内层进行相邻元素比较交换。Java代码示例展示了完整的实现过程,包括主方法测试和swap辅助方法。算法时间复杂度为O(n²),适合小规模数据排序。
2025-08-15 14:05:20
104
原创 Java插入排序
摘要:插入排序是一种基础的排序算法,其核心思想是将无序元素逐个插入到已排序序列中的正确位置。算法从第二个元素开始(索引1),将当前元素与前面已排序的元素依次比较并交换,直到找到合适位置。时间复杂度为O(n²)。示例代码展示了Java实现,通过双重循环完成元素比较和交换操作,最终实现数组的升序排序。
2025-08-15 14:04:29
120
原创 归并排序以及衍生小和、逆序对问题
本文介绍了归并排序算法及其衍生应用。归并排序通过分治思想将数组递归拆分成子数组进行排序合并,时间复杂度为O(nlogn)。代码实现了归并排序的基本流程,包含对数器验证。 重点讨论了两个衍生问题: 小和问题:计算数组中每个数左边比它小的数的总和。通过修改归并排序,在合并时统计右侧比当前数大的数量,高效求得小和。 逆序对问题:找出数组中左边数比右边数大的所有数对。同样利用归并排序的合并过程,通过比较左右子数组元素来统计逆序对数量。 这两个问题展示了归并排序在解决特定统计问题时的优势,通过分治策略将时间复杂度优化
2025-08-15 14:03:19
215
原创 EasyExcel3.x与2.x不同方式导出多图
1.实体类返回的是逗号隔开的多个图片 2.图片在Microsoft Office正常显示,在WPS Office显示不了效果展示。
2023-06-16 10:28:43
2540
13
原创 BigDecimal除法使用异常
记录一下 如果不指定保留小数位数,在遇到除不尽的情况下就会报错 遇见问题1: 除数小于被除数,先除以再设置位数,会不正确。效果如下 除不尽的情况,小数位不精准。效果如下 BigDecimal做除法时,尽量使用divide(BigDecimal divisor, int scale, int roundingMode),这个方法 divisor:被除数 scale保留小数位数 roundingMode保留小数时采用的方法,一般使用BigDecimal.ROUND_UP(四舍五入)改完版本 改完版本
2022-12-04 22:47:05
1402
原创 Jackson 的使用
jackson 的使用 引入包 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version
2022-04-08 17:23:33
1573
原创 2022年flag
这一年真的是匆匆而过,快的我有点不知所措。 回顾上一年 考了驾照。驾照时间有点久从5月到10月中旬得到,科目3挂了一次,结果还是好的。 背了单词。自己的英语实在是差的很多,从3月份开始上班路上开始背单词一次35个,一年下来成果显著。 读了几本书; 准备了计算机等级考试。从6月份开始准备11月中旬考,结果临考试前疫情原因取消了 升级了生活必备设备手机。 翻翻去年的flag。 扑街,女朋友全年与我无缘 成功!工作上属性工作环境并能不错的完成任务 成功!小目标还可以,驾照和手机属于计划之外。 扑街,体重好像
2022-02-07 17:50:01
2013
原创 but received an object of type [java.util.ArrayList$SubList]
目录1.问题描述1.1 报错日志1.2 使用场景2.问题原因3.问题解决 1.问题描述 1.1 报错日志 今天在使用Redis插入值时遇到报错 Cannot serialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is
2022-01-21 00:18:14
1240
1
原创 Java回调函数 + 使用案例
文章目录前言什么是回调函数第0个版本第1个版本第2个版本第3个版本第4个版本第5个版本第6个版本回头解析前言描述的问题1. MethodIntrospector.selectMethods()2. 抽象类MethodIntrospector3. 方法selectMethods()4. 成员变量USER_DECLARED_METHODS5. 方法doWithMethods()6. doWithMethods()方法里调用的getMappingForMethod()方法7. getMappingForMetho
2021-11-27 23:49:32
2367
1
原创 关系数据库模式
关系数据库模式关系数据库模式1.定义相关项[^1]2.关系运算3.函数依赖 关系数据库模式 1.定义相关项1 在数据库中要区分型和值。关系数据库中的型也称为关系数据库模式,是关系数据库结构中的描述。它包括若干域的定义以及在这些域上定义的若干关系模式。 实际上, 关系的概念对应于程序设计语言中变量的概念 关系模式对应的于程序设计语言中类型的定义的概念 关系数据库的值是这些关系模式在某一个时刻而对应的关系的集合,通常称之为关系数据库。 定义:关系的描述称为关系模式(Relation Schema),可以形式
2021-10-21 23:38:57
6247
原创 异或运算及异或运算的应用
0.前言 1.定义 异或是一个数学运算符,它应用于逻辑运算 数学符号⊕ 计算机符号 eor 1.1运算: a ⊕ b = (¬a ∧ b ) ∨ (a ∧ ¬b) 1. a、b两值相同,则异或结果为0;a、b两值不同,则异或结果为1 2. 也可以说是“不进位相加”——半加运算 1.2法则: 归零率 a ⊕ a = 0 恒等率 a ⊕ 0 = a 交换律 a ⊕ b = b ⊕ a 结合律 a ⊕ b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c 自反 a ⊕ b = b
2021-09-03 14:02:19
1668
原创 史上最详细图解快速排序
0.前言 找了好多贴在都没有找到舒心的一次能看懂的文章,决定把学明白每一步全部图解出来。 推荐一个博主的文章也很不错:https://blog.csdn.net/weixin_42109012/article/details/91645051 1.图解开始 .toString的话,取出的值会有双引号,直接getAsString就没有双引号啦 1.gson的使用
2021-06-22 11:26:48
3343
原创 java WebService接口调用WSDL详细解析
0、前言 有人在WebService开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户(或后台)给你一个WSDL文件(或网址),说按照上面的进行适配, 这时就要对WebService的WSDL有一定的理解,本文将对WSDL(WebService描述语言)进行详细总结。 1、WSDL的基本概念 WSDL是一个用于精确描述Web服务的文档,WSDL文档是一个遵循WSDL-XML模式的...
2021-06-21 09:05:32
8963
原创 初识OpenStack
现状:在一个已经搭建好的OpenStack的基础上认识OpenStack 1.OpenStack提供了web可视化界面 让我们来打开看看 首先需要获取网址 http://自己的ip/dashboard 使用自己的用户名密码登陆 看下效果图 2.界面初识 映入眼帘的界面 好多按钮,点开管理员看看 点开身份管理看看 这么多按钮,都是干什么用的 名词解释 首先映入眼帘的admin 随后向下...
2021-06-21 09:03:02
826
原创 JMeter的使用,同时发起多次请求的压测,POST请求使用scv参数化文件
0.安装 1.基础使用 2.压力测试 3.预制处理 4.乱码处理 5.设置Jmeter的响应数据为JSON格式 6.动态参数 7.POST请求使用scv参数化文件 8.与Postman的比较
2021-05-19 14:57:35
4621
原创 Integer在Mapper中的判断
integer类型 在Mapper中!= null and != -1 进入了判断条件,去掉!=null 就不会进入到判断条件;如果想要使用!= null则在 != -1 的 -1上加上’-1’单引号 举例: 这样传入dailyType=-1不能拼接上and条件 这样传入dailyType=-1不能拼接上and条件,但Integer可能为null 这样传入dailyType=-1能拼接上and条件 躬身自省,淳朴而谦逊否——文文的博客 ...
2021-04-23 11:08:37
2074
转载 Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
转载自:江湖小虾文章 PO: 持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数据库表里面的某个字段。完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。持久对象是由insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。 VO: 值对象(Value Object),通常用于业务层之间的数据传递,和PO
2021-04-22 17:23:08
574
原创 VUE项目部署服务器
0.前言 经过一段时间的探索,前端后端都有大致的样子了。下面就是部署到服务器,让我的博客项目公布在网上啦~~ 1.前端部署 1.1服务器准备 Nginx环境 后端接口——想要完全的效果提前部署好 1.2前端打包准备 终端运行命令 npm run build 其实它就是个静态文件,在哪访问都一样 1.2.1 静态路径问题 点击index.html,通过浏览器运行,出现以下报错,如图 具体步骤如下: 1、找到配置文件 修改 2、找到配置文件 修改 3、终端运行 npm run build 即可。 此时点
2021-04-06 08:55:28
2591
原创 Vuex的使用
0.写在前面 我需要把一份数据给多个组件使用,在网上百度发现Vuex的Store可以实现,让我去使用下。 1.理解 先找出官网地址:Vue生态系统核心插件Vuex 官网图扣过来 按照图中的理解 在Vue的Components中使用Dispatch访问Actions 在Actions中使用Commit提交Mutations 在Mutations使用Mutate改变State属性 State属性改变Render给Component 2.实战 我要把文章列表放到Vuex中管理 2.1 创建架构 在src跟目
2021-03-15 13:48:55
221
原创 Java列表如何分组,可以使用stream()的Collectors.groupingBy()
前言 数据库经常使用的逻辑,放在Java代码如何实现,现在有个快捷的方法就是使用Java8的流进行分组 准备 需求:要把每个城市、每个公司的学生数量做分组统计数量 User.java package com.wenwen.blog.service.learn.stream; import lombok.Data; /** * @author WangWenLei * @DATE: 2021/3/1 **/ @Data public class Student { private Strin
2021-03-01 14:39:00
863
原创 SQL Server Management Studio从一个数据库导到另一个数据库
0.前言 需要从一个库导一个表的数据到另一个库 1.操作流程 选择目标数据库右键-》任务-》导入数据 下一步 选择数据源 如果都是SQL Server就选择这个 填写数据源信息 如果有连接串信息直接复制到这就行,复制完点击其他位置就自动识别了 不然就手动填写下面几处 可以看下面对应的描述 点击下一步 重复上面步骤,但这回是目标库,就是你要导入数据的库 点击下一步 我要复制一张表,就先第一个,继续下一步 找到对应的表勾选下一步 next 执行
2021-02-23 18:43:30
3196
1
原创 2021年立下新年flag
新的一年回顾过去一年,长这么大最久的一次疫情至今未结束。琐碎的描述下今年的重大事情吧。在这一年,家里办公到2月中。出差到福州到7月中,在做完一期的项目后离开我毕业后的第一家公司。经过准备和面试来到我现在的公司,经过3个月的使用成为了正式的员工。去年立下的flag基本实现,只是差了个体重,不降反增,这。。。算了今年重新来吧 新的一年新的开始,重新立下flag吧! Num1 关于爱情 经过一系列想法,觉得今年头等目标,追到心念的女朋友 Num2 关于事业 熟悉了解全部的业务逻辑 Num3 关于金钱 工资今
2021-02-18 17:31:51
512
4
原创 养成良好的代码书写习惯
前言 计算机巨匠 Donald Kunth(《计算机程序设计的艺术》系列作者)有一句名言: 程序是写给人看的,只是偶尔让机器执行一下。 正文 类要写好注释 方法要写好注释 变量名不规范,不知所云。变量命名的首要规则就是” 见名识义“ 拒绝字面值,也称之为”魔数“(magic number),所有字面值统统拿出来放到代码的最前面定义成常量 过度膨胀的类。设计模式六大原则里有个 单一职责原则 重复的代码。《重构》一书提到过代码的bad smell(坏味道),其中之一就是duplicated code。重复的代
2021-02-03 11:09:36
426
HiJson.zip
2019-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅