- 博客(153)
- 资源 (3)
- 收藏
- 关注

原创 养成良好的代码书写习惯
前言计算机巨匠 Donald Kunth(《计算机程序设计的艺术》系列作者)有一句名言: 程序是写给人看的,只是偶尔让机器执行一下。正文类要写好注释方法要写好注释变量名不规范,不知所云。变量命名的首要规则就是” 见名识义“拒绝字面值,也称之为”魔数“(magic number),所有字面值统统拿出来放到代码的最前面定义成常量过度膨胀的类。设计模式六大原则里有个 单一职责原则重复的代码。《重构》一书提到过代码的bad smell(坏味道),其中之一就是duplicated code。重复的代
2021-02-03 11:09:36
357
原创 EasyExcel3.x与2.x不同方式导出多图
1.实体类返回的是逗号隔开的多个图片 2.图片在Microsoft Office正常显示,在WPS Office显示不了效果展示。
2023-06-16 10:28:43
2189
12
原创 【细读Spring Boot源码】Spring如何获取一个Bean?BeanFactory的getBean方法
finishBeanFactoryInitialization(beanFactory); 这里包含了前置处理器和后置处理器
2023-05-30 17:03:55
2165
2
原创 【细读Spring Boot源码】@ComponentScan是如何生效的?
在使用SpringBoot使用过程中@Service这几个注解类上都标有@Component注解启动类上标有的注解类上有个注解。那么@ComponentScan如何把相关的对象注册到BeanFactory的?
2023-05-09 18:17:59
847
1
原创 【细读Spring Boot源码】Spring扩展点接口BeanFactoryPostProcessor-储备
在读源码是必能看见BeanPostProcessor相关语句,这里收集记录下这个接口的作用和使用。这个扩展点是发生在bean实例化之前,BeanDefinition读取完之后。所以我们在这里可以获取到BeanDefinition,以改变他默认的实例化方式。
2023-05-06 18:08:48
212
原创 【细读Spring Boot源码】Spring扩展点接口BeanPostProcessor-储备
在读源码是必能看见BeanPostProcessor相关语句,这里收集记录下这个接口的作用和使用。BeanPostProcessor一般称为Bean的后置处理器,它是Spring为我们提供的一个扩展点,可以在创建每个 Bean 的过程中进行干涉。详细点的说可以在 Bean 的实例化前后、Bean的初始化前后,使用我们自定义的逻辑。
2023-05-06 09:35:13
244
原创 【细读Spring Boot源码】重中之重refresh()
版本:spring-boot-2.7.3 | spring-context-5.3.22主流程详情7中这个操作是加载或刷新容器,把所有的配置转换成响应的对象并存入容器。下面看下他的具体执行流程。
2023-04-28 19:17:00
1848
2
原创 【细读Spring Boot源码】prepareContext之load
BeanDefinitionLoader是从基础源加载bean定义,包括XML和JavaConfig。作为AnnotatedBeanDefinitionReader、XmlBeanDefinitionReader和ClassPathBeanDefinitionScanner的简单门面。
2023-04-27 10:22:46
164
原创 【细读Spring Boot源码】监听器合集-持续更新中
然后进行上下文的run,ConfigFileApplicationListener会去加载bootstrap的配置文件,整合初始化器到新上下文,详细如下分析。在ConfigFileApplicationListener启动之前,日志会一直处于黑暗状态,但这是我们为监听器能够根据它在自己的配置中发现的内容来调整日志级别而付出的代价。最终还是调用SpringApplication的run,但是里面就简单的做了一件事,注册我们的BootstrapImportSelectorConfiguration配置文件。
2023-04-26 16:10:07
543
原创 BigDecimal除法使用异常
记录一下如果不指定保留小数位数,在遇到除不尽的情况下就会报错遇见问题1:除数小于被除数,先除以再设置位数,会不正确。效果如下除不尽的情况,小数位不精准。效果如下BigDecimal做除法时,尽量使用divide(BigDecimal divisor, int scale, int roundingMode),这个方法divisor:被除数 scale保留小数位数 roundingMode保留小数时采用的方法,一般使用BigDecimal.ROUND_UP(四舍五入)改完版本改完版本
2022-12-04 22:47:05
1264
原创 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
1423
原创 2022年flag
这一年真的是匆匆而过,快的我有点不知所措。回顾上一年考了驾照。驾照时间有点久从5月到10月中旬得到,科目3挂了一次,结果还是好的。背了单词。自己的英语实在是差的很多,从3月份开始上班路上开始背单词一次35个,一年下来成果显著。读了几本书;准备了计算机等级考试。从6月份开始准备11月中旬考,结果临考试前疫情原因取消了升级了生活必备设备手机。翻翻去年的flag。扑街,女朋友全年与我无缘成功!工作上属性工作环境并能不错的完成任务成功!小目标还可以,驾照和手机属于计划之外。扑街,体重好像
2022-02-07 17:50:01
1920
原创 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
1157
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
2202
1
原创 关系数据库模式
关系数据库模式关系数据库模式1.定义相关项[^1]2.关系运算3.函数依赖关系数据库模式1.定义相关项1在数据库中要区分型和值。关系数据库中的型也称为关系数据库模式,是关系数据库结构中的描述。它包括若干域的定义以及在这些域上定义的若干关系模式。实际上,关系的概念对应于程序设计语言中变量的概念关系模式对应的于程序设计语言中类型的定义的概念关系数据库的值是这些关系模式在某一个时刻而对应的关系的集合,通常称之为关系数据库。定义:关系的描述称为关系模式(Relation Schema),可以形式
2021-10-21 23:38:57
6039
原创 异或运算及异或运算的应用
0.前言1.定义异或是一个数学运算符,它应用于逻辑运算数学符号⊕计算机符号 eor1.1运算:a ⊕ b = (¬a ∧ b ) ∨ (a ∧ ¬b)1. a、b两值相同,则异或结果为0;a、b两值不同,则异或结果为12. 也可以说是“不进位相加”——半加运算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
1508
原创 史上最详细图解快速排序
0.前言找了好多贴在都没有找到舒心的一次能看懂的文章,决定把学明白每一步全部图解出来。推荐一个博主的文章也很不错:https://blog.youkuaiyun.com/weixin_42109012/article/details/916450511.图解开始.toString的话,取出的值会有双引号,直接getAsString就没有双引号啦1.gson的使用
2021-06-22 11:26:48
3160
原创 java WebService接口调用WSDL详细解析
0、前言有人在WebService开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户(或后台)给你一个WSDL文件(或网址),说按照上面的进行适配, 这时就要对WebService的WSDL有一定的理解,本文将对WSDL(WebService描述语言)进行详细总结。1、WSDL的基本概念WSDL是一个用于精确描述Web服务的文档,WSDL文档是一个遵循WSDL-XML模式的...
2021-06-21 09:05:32
8781
原创 初识OpenStack
现状:在一个已经搭建好的OpenStack的基础上认识OpenStack1.OpenStack提供了web可视化界面让我们来打开看看首先需要获取网址http://自己的ip/dashboard使用自己的用户名密码登陆看下效果图2.界面初识映入眼帘的界面好多按钮,点开管理员看看点开身份管理看看这么多按钮,都是干什么用的名词解释首先映入眼帘的admin随后向下...
2021-06-21 09:03:02
703
原创 JMeter的使用,同时发起多次请求的压测,POST请求使用scv参数化文件
0.安装1.基础使用2.压力测试3.预制处理4.乱码处理5.设置Jmeter的响应数据为JSON格式6.动态参数7.POST请求使用scv参数化文件8.与Postman的比较
2021-05-19 14:57:35
4196
原创 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
1976
转载 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
506
原创 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
2495
原创 Vuex的使用
0.写在前面我需要把一份数据给多个组件使用,在网上百度发现Vuex的Store可以实现,让我去使用下。1.理解先找出官网地址:Vue生态系统核心插件Vuex官网图扣过来按照图中的理解在Vue的Components中使用Dispatch访问Actions在Actions中使用Commit提交Mutations在Mutations使用Mutate改变State属性State属性改变Render给Component2.实战我要把文章列表放到Vuex中管理2.1 创建架构在src跟目
2021-03-15 13:48:55
181
原创 Java列表如何分组,可以使用stream()的Collectors.groupingBy()
前言数据库经常使用的逻辑,放在Java代码如何实现,现在有个快捷的方法就是使用Java8的流进行分组准备需求:要把每个城市、每个公司的学生数量做分组统计数量User.javapackage com.wenwen.blog.service.learn.stream;import lombok.Data;/** * @author WangWenLei * @DATE: 2021/3/1 **/@Datapublic class Student { private Strin
2021-03-01 14:39:00
773
原创 SQL Server Management Studio从一个数据库导到另一个数据库
0.前言需要从一个库导一个表的数据到另一个库1.操作流程选择目标数据库右键-》任务-》导入数据下一步选择数据源如果都是SQL Server就选择这个填写数据源信息如果有连接串信息直接复制到这就行,复制完点击其他位置就自动识别了不然就手动填写下面几处可以看下面对应的描述点击下一步重复上面步骤,但这回是目标库,就是你要导入数据的库点击下一步我要复制一张表,就先第一个,继续下一步找到对应的表勾选下一步next执行
2021-02-23 18:43:30
2877
1
原创 2021年立下新年flag
新的一年回顾过去一年,长这么大最久的一次疫情至今未结束。琐碎的描述下今年的重大事情吧。在这一年,家里办公到2月中。出差到福州到7月中,在做完一期的项目后离开我毕业后的第一家公司。经过准备和面试来到我现在的公司,经过3个月的使用成为了正式的员工。去年立下的flag基本实现,只是差了个体重,不降反增,这。。。算了今年重新来吧新的一年新的开始,重新立下flag吧!Num1 关于爱情经过一系列想法,觉得今年头等目标,追到心念的女朋友Num2 关于事业熟悉了解全部的业务逻辑Num3 关于金钱工资今
2021-02-18 17:31:51
452
4
原创 Integer到底用什么来判断相等
说明为啥比较127和128,因为java有个常量池会缓存-128到127的数。话不多说一张图直接说明总结如果两个都是Integer,安安心心的用equals如果Integer比较int,使用equals也是true,int比较Integer不能使用equals但用==不管127还是128都是true躬身自省,淳朴而谦逊否——文文的博客前辈见之,如有问题,麻烦留言斧正。...
2021-01-29 16:41:16
763
原创 VUE集成markdown解析框架&VUE进入某个路由后从服务器获取数据
0.前言继上传文档到服务器后,需要展示文章,使用markdown解析框架百度了一下发现用marked的人不少,过去看看csdn加速过的地址1.盘他1.1引入npm install --save marked
2021-01-01 22:05:27
743
原创 VUE使用Axios发起请求
0.前言身为程序原没有自己搭建的博客略微显得有的low,经过一系列拖延,开始慢慢搭建我的自制博客。继上次集成markdown后,需要向后端发起请求保存我的编写的文档,我插入的图片等。经过几番百度比较感觉axios还是不错的,就用他了贴出axios中文网地址1.盘他1.1项目构架依然优先贴出架构1.2引入import axios from 'axios'axios.get();axios.defaults.headers.common["token"] = ""axios.def
2020-12-30 15:19:03
1153
4
原创 VUE集成markdown
0.前言身为程序原没有自己搭建的博客略微显得有的low,经过一系列拖延,开始慢慢搭建我的自制博客。继上次跳转完页面后,需要继承一个编辑器嘛,博客首先选择的肯定是markdown啦。经过一系列百度和以前多次尝试集成失败的经验最终在github上找打一款高星的组件。贴出它的地址点击跳转github:https://github.com/hinesboy/mavonEditor1.盘他1.1项目架构依然优先贴出架构1.2引入按官网指挥引入组件npm install mavon-edito
2020-12-30 14:45:54
3664
3
原创 MySQL复制到表格数据与查询行数不符
0. 前言在MySQL查询出行数为6045行,复制出来到Excel粘贴就变成了6062行1. 分析原因使用表格筛选,发现主键ID行有汉字。粘贴过程中有换行符2. 实操使用like语句查询是否有换行符select * from user from user_name like '%\n%'把字符中的换行符去掉,使用replace函数UPDATE student SET user_name = REPLACE(REPLACE(user_name ,CHAR(10),''),CHAR(13),'
2020-12-24 15:15:38
816
HiJson.zip
2019-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人