自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(328)
  • 资源 (5)
  • 论坛 (1)
  • 收藏
  • 关注

原创 【Java8新特性】——Stream的reduce及Collect使用方式

文章目录前言一、Reduce1.1一个参数的ReduceBiFunctionBinaryOperator1.2二个参数的Reduce1.3三个参数的Reduce非并行并行二、Collect定义BiConsumer三、Collector四、定制收集器总结前言本文主要讲解关于Stream中reduce的使用方式以及Collect使用方式,同时展示如何自定义收集器。提示:如果大家对lambda表达式中的四大基础函数不清楚,推荐大家优先看下四大内置核心函数式接口以及看下关于reduce相关api的使用,J

2020-12-20 22:21:01 134

原创 【源码Spring系列】——Bean的生命周期(上)

文章目录前言一、BeanFactory1.创建BeanFactory2.准备BeanFactory二、BeanDefinition总结前言本文主要是从源码的角度讲解Spring中bean的生命周期,主要讲解bean完整的初始化过程,文中不包含bean的销毁过程。下图绘制为bean在spring启动过程涉及到关键节点。以后的讲解主要围绕下图的流程展开。//样例代码public static void main(String[] args) { AnnotationConfigApplicat

2020-12-07 00:41:27 71 2

原创 【数据结构+算法】——搞定链表

1.理解指针或引用的含义2.警惕指针丢失和内存泄漏3.利用哨兵简化实现难度4.重点留意边界条件处理5.举例画图,辅助思考6.多写多练,没有捷径

2020-11-28 22:25:42 50

原创 【源码Spring系列】——Spring中核心概念

BeanDefinitionSpring中定义bean的方式 @Bean @Component <bean/>还可以通过BeanDefinition来定义一个bean DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); //定义一个bean AbstractBeanDefinition beanDefinition = BeanDefinitionB.

2020-11-22 19:00:29 54

原创 【JavaSE】——ArrayList源码解析

面试过程中常见问题ArrayList和LinkList有什么区别?通常答:两者数据结构不同,ArrayList是基于数组,LinkList是基于链表,ArrayList查询比较快,LinkList插入比较快。那么插入过程中LinkList真的比ArrayList快吗?那为什么coding过程无论插入还是查询都是使用ArrayList的情况多呢?你真的了解日常使用的ArrayList和LinkList的吗?...

2020-09-28 19:18:06 72

原创 【JUC】——深入浅出搞懂线程池

线程池一个并不陌生的概念,印象中的线程池经常使用,但是却不怎么了解原理。本文主要从线程出发,讲解线程池的使用,以及线程池的底层原理。线程创建线程的方式 继承Thread类 实现Runnable接口 实现Callable接口通过FutureTask包装器来创建Thread线程 但是从本质上来讲,java中创建线程的方式只有一种,就是实现Runable接口,即所以的线程都实现了run()方法。下面可以通过java中的UML图进行证明先看个线程的使...

2020-09-27 00:47:52 117

原创 【项目实战】——历史数据归档

迁移目标 按季度(每个租户自定义季度日期且各不相同)划分,有明显的冷热数据区分,目标将冷数据分隔,减少单表过大,提供SQL等业务处理能力,期待预期按租户自定义时间迁移,且迁移过程实现自动化,无需人工干预。归档方案 按各租户自定义中季度日历进行迁移,热数据保留最近四个季度的数据,其他数据,以日历中设定的春暑秋寒四个季度为年,进行年维度的历史数据归档。执行方案定时任务,每日执行定时任务,判断各个租户当前所属季度,判断上一年的该季度数据是否已经完成迁移,无迁移记录,...

2020-09-20 23:03:12 217

原创 【领域驱动设计DDD】——初识概念

背景 随着微服务技术的发展,越来越多的公司开始接入微服务,在微服务的推动过程中,发生了很奇怪的现象,团队没有因为技术方案一筹莫展,反而因为微服务到底应该拆多小而争得面红耳赤,不同的人会根据自己对微服务的理解而拆分出不同的微服务,于是大家各执一词,谁也说服不了谁,都觉得自己很有道理。随着深入的了解,发现服务的拆分是可以有合适的理论或设计方法来指导微服务设计。 微服务拆分困境产生的根本原因就是不知道业务或者微服务的边界到底在什么地方。何为领域驱动设计 2004 ...

2020-08-03 01:54:39 154

原创 【源码Spring系列】——bean的装配方式

之前的文章讲了FactoryBean本质也是普通的bean同样可以装配到Spring容器中,本质上也装配bean的一种方式。本文主要整理Spring中bean的装配方式以及实现的原理。图解Spring中bean的实例化流程下面主要讲解上图中装配的部分1、xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" ...

2020-07-26 21:42:48 78

原创 【Spring源码系列】——彻底搞懂FactoryBean
原力计划

在上篇博客中【源码Spring系列】——彻底搞懂BeanFactory和FactoryBean不同讲解了两者的不同,先确定两者的作用并不一样,本文主要讲解Spring是怎样从FactoryBean获取我们自己创建的Bean实例。

2020-06-28 22:32:49 236 2

原创 【设计模式】——装饰模式VS职责链模式
原力计划

关于装饰模式介绍,还请大家移步【设计模式】——装饰器模式VS代理模式,本文主要介绍职责链模式,比较两者的不同之处职责链模式(行为型)定义: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。主要解决:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。何时使用:在处理消息的时候以过滤很多道。如何解

2020-06-21 23:25:07 301 1

原创 【设计模式】——装饰器模式VS代理模式
原力计划

设计模式主要分三个类型:创建型、结构型和行为型。1.创建型模式社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。2.结构型模式在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。3.行为型模式在对象的..

2020-06-14 21:33:03 278

原创 【设计模式】——彻底搞懂三工厂模式
原力计划

最近在学习Spring的源码,虽然对源码认识不深刻,却勾起了对设计模式的热爱,越发能理解,这些理论的东西为什么值得被称赞。设计模式本身系统的学习过三遍了,但依旧停留在记不住的情况下,这次的总结源于Spring源码的学习,自认为有了一定的认知,如果存在理解偏颇之处,恳请各位大神斧正,小妹不胜感激。 三工厂模式最重要的认知,属于创建型。这意味着简单工厂,工厂模式,抽象工厂存在的意义是为了创建对象。在Java中称为Object,如果放到Spring中则称为创建bean。其实ob...

2020-06-08 00:24:14 136 1

原创 【源码Spring系列】——彻底搞懂BeanFactory和FactoryBean不同

1、BeanFactoryBeanFactory定义了IOC容器的最基本形式,并提供了IOC容器应遵守的的最基本的接口,也就是SpringIOC所遵守的最底层和最基本的编程规范。在Spring代码中,BeanFactory只是个接口,并不是IOC容器的具体实现,但是Spring容器给出了很多种实现,如DefaultListableBeanFactory、XmlBeanFactoryFactoryBean是个Bean。在Spring中,所有的Bean都是...

2020-06-02 21:34:40 232

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

凡是使用Spring的开发者都知道Spring中两大核心IOC和AOP,要问这两点,一般都会说IOC实现控制反转,AOP实现了面向切面编程。本文主要讲解IOC,所以深入提问IOC归根结底解决的是什么问题,通过何种方式实现,控制反转是从何方转向何处呢?IOC和DI有什么关系?没有IOC时,开发是什么样子?当项目比较庞大的时候,这种开发存在什么问题?1、上面案例中D会被重复创建2、对象创建过程引用其他类多的情况时,对象缺少管理3、从UML来讲,A 和 B、D的关系是组合关...

2020-05-23 20:25:51 330 2

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

最近学习了一句话,感觉自己的世界瞬间明朗,不再那么紧张焦虑恐慌,同样推荐给大家,希望我们都终有所得。 “如果一个人不是发自内心地想要做一件事情,那么,他是无法改变自己的人生的。” 同样这句话用在学习上依旧适用,作为Java语言从业者,很早之前就知道要学习Spring源码、要掌握Spring源码,当时的理由是因为Spring源码面试官要问,知道Spring源码,薪资可以要的更高。其实这些都是外部的理由,处于压力去掌握,去学习,一旦没有了找工作,涨薪的压力,那学习源码可能就抛之...

2020-05-23 16:46:10 390 2

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

本文主要记录在本机启动调试Mybatis源码中,本机基于Mybatis master 分支本地打包遇到问题整理。https://github.com/mybatis/mybatis-3https://github.com/mybatis/parent(依赖)Mybatis源码依赖于parent工程。需要先编译parent工程在编译mybatis,具体如下解决parent依赖问题:在构建的过程中会出现找不到pom.xml中依赖的父模块mybatis-parent我们需要将paren工程

2020-05-11 22:34:23 392

原创 分库分表——基本概念以及shardingJdbc和Mycat对比

1、什么是分库分表就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。2、为什么分库分表数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的...

2020-04-27 21:39:38 5968 1

原创 apollo——部署教程

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

2020-04-19 15:08:49 248

原创 MySQL-高性能使用索引

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

2020-03-08 00:28:25 205

原创 遗留系统改造微服务

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

2020-02-21 19:51:06 266

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

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

2020-02-16 22:14:18 126

原创 SpringBoot1.5.6集成Flyway

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

2019-11-24 23:10:25 286

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

依赖冲突产生的原因: 如果项目的依赖A和依赖B同时引入了依赖C。 如果依赖C在A和B中的版本不一致就可能依赖冲突。 比如 项目 <- A, B, A <- C(1.0),B <- C(1.1)。 那么maven如果选择高版本C(1.1)来导入(这个选择maven会根据不等路径短路径原则和同等路径第一声明原则选取),C(1.0)中的类c在C(1....

2019-09-08 21:36:22 255

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

在数据库直接查数据,需要mysql需要将一列中数据处理成一行展示处理,用于其他逻辑处理,但是不想查询出来自己拼接,所以找到了GROUP_CONCAT函数使用方式如下select GROUP_CONCAT(biz_id) from tb_basic_school但是在使用过程中发现查询数据总感觉少,而且发现最后一条获取的数据是不完整的,于是查了一下GROUP_CONCAT函数,发生深...

2019-08-12 22:37:22 751

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

何为CMQ? 腾讯云消息队列(Cloud Message Queue,CMQ)是一种分布式消息队列服务,它能够提供可靠的基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)之间的收发消息,存储在可靠有效的 CMQ 队列中,防止消息丢失。 CMQ 支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。——来源以及更多内容推荐看官方文档。 ...

2019-07-21 17:48:41 3609 4

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

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

2019-07-08 12:52:01 1735 3

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

背景前提 项目基于springboot 1.5.6RELEASE问题描述 普通环境启动项目正常 docker环境启动项目异常报错Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/objenesis/Objenesis排查流程...

2019-06-25 13:59:32 3751

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

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

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

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

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

2019-04-03 23:04:52 1122

原创 【Maven】——依赖管理

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

2019-03-03 23:16:54 203

原创 【zookeeper】——消息广播,崩溃恢复

zookeeper大概流程 zab协议 根据zab协议实现分布式系统数据一致性,zab核心将所有写操作的请求都转换为事物(proposal)。Leader节点再数据写完之后,将向所有follower节点发送数据广播请求,等待所有follower响应。在zab协议中只要有半数以上follower反馈即可。leader节点就会向所有follower服务器发送commit消息。即将leader节...

2018-09-09 21:23:14 2297 1

原创 【MySQL】——索引优化

温故-索引类型聚集索引和非聚集索引 MyIASM引擎,B+树的数据结构中存储的内容实际上是实际数据的地址值。也就是说它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非聚集索引。 Innodb引擎的索引的数据结构也是B+树,只不过数据结构中存储的都是实际的数据,这种索引有被称为聚集索引。 聚集索引不是一种单独的索引类型,而是一种存储数据的方式 1、主键索引 ...

2018-08-12 20:28:35 176

原创 【深入浅出JVM】——垃圾回收机制

哪些内存需要回收?&nbsp;&nbsp;&nbsp;&nbsp;JVM的内存结构包括五大区域:程序计数器,虚拟机栈,本地方法栈,堆区,方法区。其中程序计数器,虚拟机栈,本地方法栈随线程而生,随线程而灭,所以这几个区域的内存分配和回收都是具备确定性,不需要过多考虑回收的问题,因为方法结束或线程结束时,内存自然就跟随着回收 。堆区存放的是对象实例,也是GC回收的主要区域。 主要回收废弃常量和无...

2018-08-05 21:15:28 238

原创 【开发进阶】——MySQL配置主从同步,代码层实现读写分离

前提1、服务器环境 centos7 2、MySQL5.7 3、在两台机器完成MySQL的安装相关内容 4、框架ssm+数据连接池druid+p6spy配置主从同步主服务相关配置 1、在my.cnf中设置如下内容server-id=1log-bin=master-binlog-bin-index=master-bin.index2、创建用户,并授权crea...

2018-07-29 15:35:51 645 8

原创 【MySQL优化】——看懂explain

explain&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;explain模拟优化器执行SQL语句,在5.6以及以后的版本中,除过select,其他比如insert,update和delete均可以使用explain查看执行计划,从而知道mysql是如何处理sql语句,分析查询语句或者表结构的性能瓶颈。 作用 1、表的读取顺序 2、数据读取操作的操作类型 3、哪些索引可以使用 4、...

2018-07-29 11:03:57 61537 9

原创 【Spring】——声明式事务配置详解

    事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。本文主要讲解事务涉及到一些概念以及spring中事务的使用。如有理解偏颇之处,恳请各位大神指正,小编不胜感激!1、何为事务?    事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。就是把一系列的操作当成原子性去执行。事务四个属性ACID1、原子性(atomicity)事务是原子性操作...

2018-07-15 21:29:20 24777 7

原创 【深入浅出zookeeper】——认识Zookeeper

    本文主要介绍zookeeper中涉及到一些简单概念和zookeeper用到ZAB算法。Zookeeper是什么     Zookeeper是一个开源的分布式协调服务,为分布式应用提供了高效且可靠的分布式协调服务,提供了统一命名服务,配置管理和分布式锁等分布式的基础概念。Zookeeper设计目标    Zookeeper致力于提供一个高可靠,高性能,并且具有严格的顺序访问控制能力(写操作)...

2018-07-15 16:06:52 780 1

原创 【SpringMVC】——图解执行流程

springmvc执行流程执行流程1、用户发送请求到前端控制器DispatcherServlet2、DispatcherServlet收到请求调用处理映射器HandlerMapping3、处理映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包含处理器对象和处理器拦截器)返回给DispatcherServlet4、DispatcherServlet根...

2018-07-12 10:11:44 9129 6

原创 【Spring注解】——组件注册

    本文将主要针对Spring注解,讲解在组件注册过程会用到一些注解,对于小编本身是基础的回顾和巩固,也希望能帮助到需要的朋友,讲解偏颇之处,还请各位大神指正,小编不胜感激。1、在容器中注册组件1.1@Configuration标注在类上,告诉spring这是一个配置类,代替spring的xml配置文件中&lt;beans&gt;。作用:配置spring容器(应用上下文)优点    1、使用纯...

2018-07-08 11:26:49 324

sourceTree破解版mac版

mac版的sourcetree破解版安装包。版本为2.0.5,不需要注册,安装即可使用

2018-10-08

lombok插件

lombok-plugin-0.16-2017.1.zip插件。在idea中可以使用这个插件包进行lombok的离线安装,解决网络不顺畅的问题

2018-04-05

JRebel6.4.3安装包和破解文件

JRebel6.4.3安装包和破解文件,详细使用流程请看小编的博客!

2018-05-22

VB控件属性大全

对一些刚学习VB不久或者想要学习VB的朋友会一些帮助,更好的掌握VB中控件的属性

2015-08-14

关于数据库报表

这是关于数据库报表的插件,在安装之后,可以通过部件,添加到工具箱。

2015-06-21

mandy@i的留言板

发表于 2020-01-02 最后回复 2020-02-17

空空如也

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

TA关注的人 TA的粉丝

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