自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 【算法&数据结构篇】——数组和链表

算法和数据结构都是非常基础的内容,经常使用,但是又很容易被忽视,而被重视的时候往往是面试官提问的时候。之前很不理解为什么面试官总喜欢问算法和数据结构,日常价值不大的东西。后来随着工作的深入,越发的理解 算法+数据结构=程序 之所以后来理解了这个公式,系统学过算法和数据结构的知识...

2020-05-23 23:03:21 16 0

原创 【源码Spring系列】——IOC设计理念以及自动装配原理
原力计划

凡是使用Spring的开发者都知道Spring中两大核心IOC和AOP,要问这两点,一般都会说IOC实现控制反转,AOP实现了面向切面编程。本文主要讲解IOC,所以深入提问IOC归根结底解决的是什么问题,通过何种方式实现,控制反转是从何方转向何处呢?IOC和DI有什么关系? 没有IOC时,开发是...

2020-05-23 20:25:51 67 0

原创 【源码Spring系列】——为什么学习Spring源码

最近学习了一句话,感觉自己的世界瞬间明朗,不再那么紧张焦虑恐慌,同样推荐给大家,希望我们都终有所得。 “如果一个人不是发自内心地想要做一件事情,那么,他是无法改变自己的人生的。” 同样这句话用在学习上依旧适用,作为Java语言从业者,很早之前就知道要学习Spring源码、要掌握Sprin...

2020-05-23 16:46:10 75 0

原创 【源码Mybatis系列】——Mybatis源码本地打包编译

本文主要记录在本机启动调试Mybatis源码中,本机基于Mybatis master 分支本地打包遇到问题整理。 https://github.com/mybatis/mybatis-3 https://github.com/mybatis/parent(依赖) Mybatis源码依赖于pa...

2020-05-11 22:34:23 76 0

原创 【源码Mybatis系列】——核心流程

2020-05-10 22:21:16 37 0

原创 优雅处理null,向空指针说再见!

导语 作为一位Java研发,饱受了NullPointerException摧残。一方面如果不做null的判断,程序可能出现NullPointerException,另有一方如果做null判断,这些判断让开发起来感到奔溃,也让后来阅读人摸不着头脑。对应Java中的空指针,小编只想说一句,无...

2020-04-27 22:50:54 118 0

原创 分库分表——初识

1、什么是分库分表 就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。 2、为什么分库分表 数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销...

2020-04-27 21:39:38 62 0

原创 postman使用教程

      目前公司虽然也是前后端分离的项目,但是没有使用swagger,所以接口的测试使用的是postman,但是我关于postman的使用知道的比较少,将最近使用postman的内容总结下,如有不足希望大家帮我补充,提前谢过各位大佬。...

2020-04-19 16:10:17 321 8

原创 apollo——部署教程

本文主要讲在apollo的1.6.0版本之前,基于现有apollo,额外搭建新的环境

2020-04-19 15:08:49 84 0

原创 【开发效率】——idea快捷键

Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以...

2020-04-06 17:48:20 31 0

原创 工具篇——idea的清理无效代码

公司的项目维护的人员变动过很多次,而且部分功能都已经进行了业务和代码的重构,因为之前代码提交的不规范,造成项目中存在很多无效使用的类,方法等内容。为了是项目朝着好的方向发展,而且Idea中Analyze主要用于代码分析清理,所以打算用idea清理下代码。 Analyze中菜单介绍 1.In...

2020-03-29 19:27:46 446 0

原创 工具篇——idea开发必备插件

1、Maven Helper 分析依赖冲突插件 此插件可用来方便显示maven的依赖树,在没有此插件时,如果想看maven的依赖树需要输入命令行: mvn dependency:tree 才可查看依赖。如果想看是否有依赖包冲突的话也需要输入命令行等等的操作。而如果安装Maven Helper插...

2020-03-29 17:23:49 90 0

原创 MySQL-高性能使用索引

独立列,多列索引——合适索引顺序 前缀索引,索引选择性 聚集索引,数据结构 只有主键列为聚集索引,其他均为辅助索引 为什么主键不建议使用uuid,而是递增序列? 三星级索引标准 覆盖索引 重复索引,冗余索引 索引扫描排序 索引和锁 多列索引应用以及优化(in),拒绝多范围条件 ...

2020-03-08 00:28:25 128 0

原创 遗留系统改造微服务

随着企业规模的扩大以及微服务技术的逐渐成熟,更多企业开始尝试使用微服务的方式进行系统开发。但是技术的转型并不能一蹴而就,因为一般技术部门要保持需求的开发进度,所以研发并不能停下需求研发,而单单做技术的转型。这就造成遗留系统改造微服务比新系统直接使用微服务方式开发更复杂,在这个复杂的过程,要寻求业务...

2020-02-21 19:51:06 126 0

原创 分布式事务——理论篇

数据库事务的四个原则ACID 原子性,一致性,隔离性,持久性 微服务的软件开发,数据库相互分离,在调用多个服务的过程中,涉及到多个数据库,数据库本身事务无法满足多个数据源之间的ACID。因此引出目前业界比较难处理的分布式事务问题。 分布式事务 原则CAP 一致性,可用性,分区容错性...

2020-02-16 22:14:18 61 0

原创 关于疫情,你想到什么?

    2020这个注定特殊的年份,相比往年早来的春节,却没有带来提早带来春节的欣喜,反而是被新型冠状病毒堵在家中,不出门,不拜年,所有的春节安排计划全部打乱,统一换成云处理,宅在家,保平安。从疫情发生到现在将近一个月的时间了,这段时间没学习,每天都是抱着手...

2020-02-13 00:19:22 2810 1

原创 星辰大海,扬帆起航

      农历2019年最后一个工作日,完整的一个工作年到此结束。最后一天,不是很忙,刚好可以用这闲暇的时间整理2019年的过往,理智的立下新年flag。       这一...

2020-01-19 23:29:20 107 4

原创 SpringBoot1.5.6集成Flyway

What? Flyway一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations可以写成SQL脚本,也可以写在Java代码中,不仅支持Command ...

2019-11-24 23:10:25 106 0

原创 城市里闪烁的灯 哪一盏为你而闪

距离2019年9月14日已经过去了两个月的时间,这篇坚持了五年的年中总结,比之前晚到了。不是忘记,而是不知如何表述;心有不甘,所以久久挂念;对现状不满,总结反思告别。希望当我老去的那天,回头看这些写下的文字,能将往事历历回首。 从入职了新公司到顺利转正到现在,有一种迷失了方向的感觉,一段...

2019-11-03 23:29:13 129 4

原创 git常用命令

//删除目标分支 git branch -D master //获取远端所有分支 git branch -r //获取本地所有分支 git branch //从远端拉取代码 git pull //查看当前项目中有哪些文件被修改过 git status //创建新分支并推送到远端 ...

2019-09-29 18:46:39 53 0

原创 maven解决冲突以及常用命令

依赖冲突产生的原因: 如果项目的依赖A和依赖B同时引入了依赖C。 如果依赖C在A和B中的版本不一致就可能依赖冲突。 比如 项目 <- A, B, A <- C(1.0),B <- C(1.1)。 那么maven如果选择高版本C(1.1)来导入(...

2019-09-08 21:36:22 110 0

原创 idea的Maven Projects中红色波浪线报错

1、新导入idea的maven项目在import后 Plugins以及Dependencies有红色波浪线 两种解决方案 1、清除idea的缓存,重新导入 2、上述操作无效 2.1 从.m2文件夹开始沿上图路径找到该位置 2.2 删除该文件夹中所有以.lastUpdated结尾的文...

2019-08-18 22:24:10 1620 2

原创 Jrebel+springboot2.0 启动失败问题

背景 最近加入了一个项目,项目是基于springboot2.0+mybatis的,从git上拉下项目之后一直启动失败。 问题报错原因一直显示为 关于Error creating bean with name 'sqlSessionFactory' defi...

2019-08-18 20:55:13 731 0

原创 mysql将一列值拼成一条数据,逗号分隔

在数据库直接查数据,需要mysql需要将一列中数据处理成一行展示处理,用于其他逻辑处理,但是不想查询出来自己拼接,所以找到了GROUP_CONCAT函数 使用方式如下 select GROUP_CONCAT(biz_id) from tb_basic_school 但是在使用过程中发现查询...

2019-08-12 22:37:22 251 0

原创 mysql字段中提取汉字,去除数字以及字母

需求 最近接到的新需求用户表中有两个字段分别代表用户的系统姓名以及真实姓名,系统姓名在系统中是唯一的用于展示给业务操作人员,减少重名对操作人员的干扰,真实姓名用于用户端展示。但是由于之前需求缺失,并没有对用户真实姓名进行维护,所以这次的要求已系统用户表为准,去掉其中包含的数字以及字母只保...

2019-08-12 21:48:18 3105 0

原创 CMQ——多线程实现自动拉取消息

何为CMQ? 腾讯云消息队列(Cloud Message Queue,CMQ)是一种分布式消息队列服务,它能够提供可靠的基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)之间的收发消息,存储在可靠有效的 CMQ 队列中,防止消息丢失。 CMQ 支持多进程同时读写,...

2019-07-21 17:48:41 1683 3

原创 Mybatis-Plus-Generator代码生成工具

前提 最近一直在开发新的项目,对于公司使用的代码生成器着实不爽,只生成model以及dao和xml,而且生成dao功能都是基于id操作的,但是实际业务都是基于biz_id,xml中如果发生表结构变动,改动起来额外容易发生问题。本着不将就的态度,结合自己上家公司的经验,想做一个基于模板的代码...

2019-07-14 22:33:36 1355 0

原创 拦截error日志,并发送到钉钉群

之前公司的错误日志都发送到邮箱中,但是邮箱存在响应延迟,造成问题解决不及时,结合我们正在使用的通信方式,发送到钉钉中效果会更好些。 一般上,在开发过程中,像log4j2、logback日志框架都提供了很多Appender,基本上可以满足大部分的业务需求了。但在一些特殊需求可以自定义Appe...

2019-07-08 12:52:01 732 1

原创 docker环境启动项目—— nested exception is java.lang.NoClassDefFoundError:org/objenesis/Objenesis

背景前提 项目基于springboot 1.5.6RELEASE 问题描述 普通环境启动项目正常 docker环境启动项目异常报错 Constructor threw exception; nested exception is java.lang.NoClassDef...

2019-06-25 13:59:32 1843 0

原创 观察者模式实现报表实时更新

前提 最近重构的项目涉及到很多报表的统计,重构之前报表的数据更新为每小时更新一次,这次重构过程希望可以做到实时更新,一方面可以减少测试成本,另一方面从根本上提供用户体验度。其实做实时查询,业界有很多成熟的方案,最近最常用的就是es,solr等搜索引擎,小编这次的项目数据量从零开始,短时间内...

2019-06-16 23:22:20 323 2

原创 MySQL基本数据类型

MySQL基本数据类型分为以下几种 整型 实数 字符串 日期和时间 特殊字符NULL 无符号unsigned 使得整型上限提升一倍 优化数据类型,提高查询速度 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间...

2019-05-27 00:40:52 77 1

原创 网络通信——BIO

网络通信在编程世界中是必不可少的一部分,到目前为止网络通信主要经历了三个阶段BIO,NIO,AIO。本文主要介绍网络通信涉及到的一些概念,并且采用一个网络通信的Demo展示何为BIO——阻塞IO。 基础概念 1、阻塞、非阻塞 阻塞和非阻塞是指进程在访问数据的时候,数据内部是否准备就绪的一种...

2019-05-14 23:34:50 146 2

原创 常用时间工具类-某小时,天,星期,月的开始结束时间

在没有使用Java8之前在封装相关时间工具类的时候都使用的是java.util.Calendar。 Java.util.Calendar类将日期同时存储为与标准纪元之间的偏移量以及一组日历字段。此双精度表示导致在意外的时间重新计算日历字段,从而产生不可预测的性能特点,java.util.Cale...

2019-05-06 10:08:15 109 1

原创 从零开始学netty

Netty概述: 1、netty是基于Java NIO的网络应用框架,client-server框架 2、Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持, 作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的, 通过Future-Listen...

2019-04-28 23:20:33 101 4

原创 fastjson常见使用方式

最近的项目中涉及到很多需要和第三方交互的问题,传输数据格式使用就是json类型,需要解析各种花式json格式数据,之前只是简单使用,从来没有好好了解过fastjson的一些使用方法,在使用的过程有些陌生的地方,总结下来,为了以后的方便。 JSON(javaScript Object Nota...

2019-04-15 11:09:19 109 3

原创 【配置中心】——配置中心选型

什么是配置中心 不使用配置中心 没有采用独立的配置中心,每次修改配置参数只能通过手动修改配置文件的方式,然后再重启重启重启,而且机器又是多台,这种方式无疑是非常低下的,而且极容易出错。 何为配置中心? 由IT基础框架推出的统一配置管理产品。基于该配置中心产品,您可以在DevO...

2019-04-03 23:04:52 445 0

原创 SpringCloud——组件概览

何为微服务? 一种架构风格,将单体应用划分为小型的服务单元,微服务之间使用Http的API进行资源访问与操作。 微服务主要解决问题 高性能 独立性 容易扩展 便于管理 状态监控与警报 何为SpringCloud? SpringCloud各个项目是基于SpringBoot封装...

2019-03-17 23:19:31 138 1

原创 【git】——远端代码回滚任意版本

使用命令完成代码回滚 1、通过git提交日志查看需要回滚的commit id git log -3 查看前三次提交日志记录 -3以此类推可以获得任意次的提交日志记录 2、回滚到指定版本 git reset --hard HEAD^ 回退到上个版本 git reset --hard H...

2019-03-10 23:44:47 2339 3

原创 【Maven】——坐标和版本管理

坐标 在maven项目中使用涉及到相关工具只需要在pom中加入需要的坐标即可,但是什么坐标呢?我理解的坐标就是jar包在中央仓库中的身份证,通过坐标可以确定唯一的jar包,避免使用错误,坐标中主要包括一下内容: groupId:定义当前Maven项目隶属的实际项目。首先因为Maven中有模块的...

2019-03-03 23:19:19 77 0

原创 【Maven】——依赖管理

一般在Maven项目中会引用很多依赖jar包,本文主要讲解Maven中关于依赖的内容。如有理解偏颇之处,欢迎各位大神指正。 依赖范围 compile:编译依赖范围。如果没有指定,默认会使用该依赖范围。使用此依赖范围,在编译,测试,运行时候都有效,都会使用该依赖 test:测试依赖...

2019-03-03 23:16:54 153 0

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