自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Spring IOC容器初始化过程(二)配置信息加载与注册

Spring IOC容器初始化过程(二)配置信息加载与注册上文中 Spring IOC容器初始化过程(一)资源定位过程 我们一起分析了资源定位的过程,Spring IOC 容器在初始化的过程中并不是直接读取配置文件然后进行加载,而是在开始做了许多准备工作,先初始化资源读取器,设置其读取策略,校验策略,再将数据加载至内存中,最后封装为BeanDefinition对象进行注册。整体加载的时序图工程目录POM文件<?xml version="1.0" encoding="UTF-8"?>

2021-03-30 23:19:07 1324 5

原创 Spring源码分析 之 Spring IOC容器初始化过程(一)资源定位过程

Spring IOC容器初始化过程(一)资源定位过程最近复习了一遍Spring IOC容器的初始化过程,结合书籍《Spring源码深度解析》总结了一下,IOC容器的初始化过程,大概分为以下三点:定位资源定位相关的配置文件,扫描相关注解加载资源将配置信息加载到内存中注册根据载入的配置信息,初始化对象,并将其装载至容器中整体加载的时序图工程目录POM文件<?xml version="1.0" encoding="UTF-8"?><project x

2021-03-30 00:42:37 3393 20

原创 一次成功:搭建K8S集群以及ISTIO环境

一、概述本文主要讲述在centos7环境下如何使用kubeadm工具快速搭建一个k8s集群。同时也讲述了如何安装Istiok8s版本:1.20.6istio版本:1.5.1二、准备工作2.1 机器环境操作系统:centos7 64位硬件配置:2g RAM 2个cpu 硬盘40g主机名角色IPmastermaster192.168.0.19node1node1192.168.0.20node2node2192.168.0.21分别

2021-11-04 00:04:12 1777 2

原创 设计模式-桥接模式

概念如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一条连接两个独立继承结构的桥,故名桥接模式。以日常生活中的毛笔和蜡笔为例,假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色。那么使用蜡笔时,我们需要准备36支笔。但在使用毛笔时,只需要三种型号的笔和12个颜料盒。上面的蜡笔就是把多种功能聚合

2021-10-30 14:32:19 150

原创 设计模式-适配器模式

概念将某个类的接口转换成客户端期望的另一个接口的表示,主要目的是兼容性,让原本因接口不匹配而不能一起工作的两个类可以协同工作以手机充电的场景,就是家用插线板不能直接用电线链接手机进行充电,需要一个充电器,而充电器的作用就是转换电压,让原本不匹配的手机和电源可以协同工作以实际业务为例,在Java 代码中 service 层就是一个适配器,service层持有dao的对象,从dao层查询数据,在service层处理转换为前端需要的数据,并返回至前端。应用场景系统需要使用一些现有的类,而这些类的接口(

2021-10-24 13:48:21 2165

原创 [问题解决]解决centos系统下 source /etc/profile 切换终端后环境变量失效的问题

在系统中配置了JAVA 环境,vim /etc/profile 设置环境变量后,使用source /etc/profile 命令使其生效。但是,切换终端后,又失效了。解决办法:vi ~/.bashrc然后最后一行添加 source /etc/profile

2021-04-19 00:23:38 1539

原创 Spring源码环境构建踩坑

Spring源码环境构建踩坑基本信息Spring 版本:5.0.2ReleaseGradle版本:4.3.1IDE: IDEA2019.3.3环境搭建Spring 源码是基于Gradle的,所以需要先搭建Gradle环境。Gradle4.3.1下载链接Spring5.0.2源码下载链接踩坑1. 配置好gradle环境后,运行gradlew.bat脚本,一直下载gradle这是因为运行gradlew.bat 脚本时,它会根据当前目录下 gradle文件夹下的wapper下的gradle-

2021-03-24 00:36:37 1500 3

原创 设计模式-单例设计模式

概念顾名思义,就是确保某一个类在任何情况下都绝对只有一个实例,而且自行实例化并向外部提供一个该实例的全局访问点。这个类被称为单例类单例模式是一种对象创建型模式应用场景系统中只需要一个实例对象,如windows系统的资源管理器。客户调用类的单个实例,只允许使用一个全局访问点,除了该访问点,不能通过其他方式来访问该实例。具体应用单例模式只有一个角色Singleton(单例):单例类对外隐藏了构造方法,在其内部只生成一个实例,同时它对外提供了一个静态的getInstance()工厂方法,让

2021-03-14 15:24:45 1859 11

原创 设计模式-工厂方法模式

概念定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行.工厂方法模式又简称为工厂模式(Factory Pattern),又可称作虚拟构造器模式(Virtual Constructor Pattern)或多态工厂模式(Polymorphic Factory Pattern)应用场景由于简单工厂只提供一个工厂类来进行对象的创建,导致其职责过重,且代码不易维护,当系统需要扩展时,需要修改原有代码,导致违反了开闭原则,故引出工厂方法模式。如下情况可以考虑使用工

2021-01-14 12:25:49 2761

原创 设计模式-简单工厂模式

概念定义一个工厂类,可以根据不同的参数返回不同的实例,被创建的实例通常具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此又被叫做静态工厂方法模式应用场景当系统所需创建对象较少,创建逻辑不会过于复杂,且客户端只需要获取所需要的对象,而无须知道所创建的细节时,可以使用简单工厂模式具体应用简单工厂模式的要点在于:当你需要什么对象,你只需要传入一个正确的参数,就可以获取到你所需要的对象,而无须知道其创建细节该模式主要包含如下角色:Factory(工厂角色):工厂角色就是工厂类

2021-01-14 12:24:17 2754

原创 Elasticsearch 查询之 单字符串多字段查询

单字符串多字段查询Disjunction Max Query查询示例示例代码PUT /blogs/_doc/1{ "title": "Quick brown rabbits", "body": "Brown rabbits are commonly seen."}PUT /blogs/_doc/2{ "title": "Keeping pets healthy", "body": "My quick brown fox eats rabbits on a

2020-12-14 22:49:39 3178

原创 JqueryFormBuidler 自定义控件-详细版

JqueryFormBuidler 自定义控件一、JqueryFormBuilder文件树源码文件目录├─demo│ │ index.html│ │ │ ├─js│ │ actionButtons.js│ │ demo.js│ │ │ └─sass│ demo.scss│ ├─fonts│ config.json│ formbuilder-icons.woff│

2020-12-11 15:44:54 3584

原创 Elasticsearch 查询之 多字符串多字段查询

多字符串多字段查询在ES中,Query Context 和Filter Context 是两种不同的上下文,其主要区别在于Query Context 会进行相关性算分Filter Context,不会进行相关性算分,性能更好在ES中如果要进行复杂的查询,那么可以使用bool Querybool 查询一个bool查询是一个或者多个查询子句的组合bool查询总共包含4种子句子句类型备注must必须满足该条件。结果会贡献算分should至少有一个满足条件。结果会贡

2020-12-10 00:24:12 4912

原创 Elasticsearch 查询之基于词项和基于全文的搜索

基于词项和基于全文的搜索基于Term的查询Term 是表达语义的最小单位。搜索和利用统计语言模型进行自然语言处理都需要处理Term特点Term Level Query: Term Query / Range Query / Exists Query / Prefix Query / Wildcard Query在ES中,Term 查询,对输入不会进行分词处理,直接将输入做为一个整体在倒排索引中查找准确的词项,并且使用相关度算分公司为每个包含该词项的文档进行相关度算分(相关度算分会影响查找性能)

2020-12-10 00:23:04 2860 1

原创 Elasticsearch 入门之 Mapping 与 Dynamic Mapping

Mapping 与 Dynamic MappingMapping定义索引中字段名称定义索引中字段类型字段,倒排索引的相关配置Mapping 把JSON文档映射成Lucene所需要的扁平格式Dynamic Mapping在写入文档时,如果索引不存在,便会自动创建索引这时Dynamic Mapping 机制会让es 根据文档的数据,推算出相应字段的数据类型但是有时候,类型会推断不准确//查看索引MappingGET {index}/_mapping字段的类型简单类型T

2020-11-30 22:02:30 2757

原创 ElasticSearch 入门之 URI Search API

URI Search使用http get 方式进行查询Request Body Search使用 es 提供的 基于json格式的更加完备的查询语言(DSL)URI Search API目标Term Search 和 Phrase SearchURI Search 中的参数URI query//模板 GET /{index}_search?q={关键字}&df={指定查询的默认字段}&sort={指定排序字段}&from={第几条开始}&a..

2020-11-29 20:40:00 2762 6

原创 JQueryFormBuilder 自定义控件

JQueryFormBuilder 自定义控件定义控件按照文档继承Control.js 并且注册//`import control from '../control'`import control from '../control'//define a new class extending `control` (or any other child control class)export default class controlImg extends control { //

2020-11-19 21:22:13 3599

原创 记录一次问题解决——rtentlink answers :file exists

rtentlink answers :file exists 问题解决今天在启动hadoop集群的时候,发现其中一个节点连接不上了。查看虚拟机的启动情况发现都是正常启动。遂开始分析原因系统:centos7.0首先查看了网络ip配置,发现没有了ipv4的配置。刚开始以为是网卡配置出了问题。然后去检查网卡配置,发现网卡的配置是正常的。就在想重启一下网络服务试试,然后就报出了这个 rtentlink answers :file exists 这个错误上网查询了一下原因,是因为 network 和 Net

2020-10-25 13:23:11 3155

原创 Hadoop-3.x 伪分布式集群安装教程

Hadoop集群安装本文安装配置步骤除第1步外,全程参考官方文档机器配置如下(虚拟机)角色IP内存硬盘硬盘master192.168.1.2023g20gcentosslave1192.168.1.2033g20gcentosslave2192.168.1.2043g20gcentos防火墙全关,selinux关闭1. 环境配置1.1 ssh免密登录配置1.1.1 修改hosts文件3台机器都如此操作执行如下命令sudo

2020-09-21 00:28:02 3368

原创 金蝶云苍穹-动态表单中使用单据体控件如何动态控制操作列的显示

金蝶云苍穹-动态表单中使用单据体控件如何动态控制操作列的显示个人博客实现     先说一下,官方文档中提供的hideOperateItems方法,并不实用,只要翻页之后,就会没有效果。hideOperateItems 方法只会针对当前的表格做隐藏的处理,并不是真正的修改数据,并且如果你设置的行号大于了当前单据体的最大展示行数,还会把整个表格都隐藏掉,所以如果你的单据体不需要翻页的话,是可以用这个方法的。    动态表单中的单据体的实体对象时EntryGrid。该类可以添加PackageDataLis

2020-08-09 19:38:11 3921

原创 Netty 入门案例之静态文件服务器实现

Netty 入门案例之静态文件服务器实现最近用Netty实现了一个类似于Nginx的静态文件服务器功能。遂在个人博客中记录下过程设计阶段功能设计支持自定义配置文件(提供默认配置文件和外部配置文件两种方式)支持静态文件路由配置静态文件下载实现过程配置读取设计一个ResourcesService类,使用单例模式,在程序启动时读取默认路径下的config.properties文件。同时也读取Jar文件所在目录的的config.properties文件。静态文件的路由配置需要按照规则,使用w

2020-08-08 13:52:46 3046

原创 从Netty入门案例中看懂Netty工作模型

Netty工作模型最近在学习Netty,遂记录下一些学习心得。文章中的内容是在学习了李林峰老师的《netty权威指南》以及尚硅谷的Netty视频后的一些感想以及对netty内容的学习记录。单Reactor多线程模型中,只有一个selector,负责accept,read,write事件的维护Netty主要基于 主从Reactors多线程模型,顾名思义,使用一个主Selector,和一个从Selector主Selector 只负责客户端的连接,即accept事件。从Selector 负责客户端的读

2020-07-11 01:46:41 7280 3

原创 浅谈ZAB协议及ZooKeeper选举机制

浅谈ZAB协议及ZooKeeper选举机制​ 众所周知,世界上只有一种分布式一致性协议,那就是Paxos,那么我们今天为什么要讨论Zab协议呢,ZAB协议又是什么呢。​ Google公司有一个大名鼎鼎的分布式锁服务,名叫Chubby,GFS和Big Table都使用它进行分布式协作,其底层的一致性实现就是以Paxos算法为基础。但是Chubby不是开源的,因此雅虎的开发者们,也以Paxos算法...

2020-04-08 23:43:46 7095 1

原创 利用ZooKeeper特性实现分布式锁

利用ZooKeeper特性实现分布式锁​ 在单机应用中,常常会遇到多进程/线程竞争系统资源的情况,为了保持多进程/线程情况下数据的一致性,在计算机中引入了锁的概念,从而 保证在多进程/线程情况下,一个系统资源在某个CPU事件片内只有一个进程/线程能够访问。但是在分布式系统的情况下,数据不再是某一台机器进行维护,而是多个系统,多个机器进行维护,根据单机中的锁的概念,人们又衍生出分布式锁。​ ...

2020-03-30 22:54:16 7520

原创 白话分布式一致性协议之Paxos算法

Paxos算法Paxos 算法是解决分布式系统中数据一致性问题的算法,是分布式系统中非常重要的算法,Google Chubby的作者Mike Burrows说过这个世界上只有一种一致性算法,那就是Paxos,其它的算法都是残次品。可见该算法的重要性。Paxos算法将系统中的角色分为3种,分别是提议者(Proposer)决策者(Acceptor)和学习者(Learner)。提议者(Propo...

2020-03-25 23:00:58 3001

原创 分布式一致性协议介绍

概述在分布式系统中,由于一个事务操作需要跨越多个分布式节点,为了保持事务处理的ACID特性,所以引入了协调者和参与者的概念。由协调者进行决策,参与者执行决策。并基于这种思想,衍生出2PC和3PC两种提交协议。2PC2PC,是Two-Phase Commit的缩写,即二阶段提交,是分布式一致性协议中的一种,用于保证分布式系统中的数据一致性。顾名思义,2PC将整个事务的提交过程分为了两个阶段进行...

2020-03-25 22:48:52 6656

原创 SpringBoot 中使用@Validated注解进行数据校验

SpringBoot 中使用@Validated注解进行数据校验概述在写业务代码时经常会遇到各种数据校验的问题,针对不同的业务需要不同的校验规则,这就会导致代码中出现很多的if else语句,所以用@Validated注解搭配@Valid注解进行代码简化和数据校验是很有必要的。基本用法介绍场景:新增学生//如果你有一个学生类,其结构如下//在新增时需要验证其名字和年龄是否为空,那么只需...

2020-02-04 17:05:47 11609 2

原创 LeetCode.122 买卖股票的最佳时机 II

题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, ...

2019-10-19 22:09:47 6472

原创 分布式消息中间件-kafka集群搭建

本文粗略的介绍了如何搭建kafka集群

2019-09-17 11:31:36 2798

原创 Zookeeper集群搭建

本文粗略的介绍了如何搭建zookeeper集群

2019-09-17 11:27:40 6391 1

原创 SpringBoot+SpringDataJpa 整合Oracle数据库

SpringBoot+SpringDataJpa 整合Oracle数据库1. 驱动下载由于oracle没有授权,所以不能从Maven仓库里面直接下载。需要先去官网下载之后使用。这里的连接不是官网的,但是工具包是从官网上下载的。下载连接下载完成后,上传至公司内部的maven仓库,配置好就可以使用了。在Oracle 数据库中,一个用户就对应一个数据库。数据库的创建方式也不同于sql ser...

2019-08-28 12:59:38 5027

原创 <LeetCode>-344. 反转字符串

题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]这道题...

2019-06-09 10:52:36 6492

原创 <LeetCode>-654.最大二叉树

题目:给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。Example 1:输入: [3,2,1,6,0,5]输入: 返回下面这棵树的根节点: 6 ...

2019-06-01 15:30:38 3360

原创 <LeetCode>-20.有效的括号.利用栈的特性解题

首先看一下题目:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。所用语言:Javaclass Solution { public boolean isValid(String s) { Stack...

2019-06-01 15:25:31 6397

原创 <LeetCode>-559. N叉树的最大深度- 递归解题思路

所用语言:Java/*// Definition for a Node.class Node { public int val; public List<Node> children; public Node() {} public Node(int _val,List<Node> _children) { va...

2019-05-26 19:40:48 6601

原创 JavaWeb服务器环境搭建——2.安装Mysql

上一篇里面我们把Java环境给配置好了,接下来就该配置数据库了,因为等下安装Apache James需要系统上有MySql环境。 安装MySql5.7 首先我们得确定系统中是否安装了MySql,如果有的话,我们需要将其卸载掉。 过程如下:# yum list installed | grep mysqlmysql-libs.x86_64 5.1.73-8.el6_8

2018-02-07 22:05:28 3093

原创 JavaWeb服务器环境搭建——1.安装Java环境

前言:去年10月份的时候准备写一个Kindle的推书的小系统,当时想着自己从头到尾搭建所有的环境,以便自己更加熟悉服务器这一块的操作,结果当时环境配置完成后,太懒再加上又被其他事情耽搁,一直把这个忘在了一边,现如今放寒假,自己有点时间,前几天登上自己的服务器之后发现自己把james的root用户密码给忘了,几经尝试最终还是没能找到找回密码的方法,所以想着现在又来重新配置一次。并且记录下来。先说明一

2018-02-07 17:15:06 10871 2

转载 修改MySql root用户密码

在腾讯云上又重新买了一台学生机,由于用的是Centos ,不会配置环境,用的镜像市场的镜像,直接配置好了环境。然后发现系统给的数据库root 用户的密码是随机的,我就想着把mysql 中的user表 的用户名为ROOT 的用户的密码给修改一下,这样比较方便记忆,所以就用了一条update 语句去修改,结果发现不行,虽然显示操作成功,但是还是不能用修改好了的密码登录上去。ERROR 1045

2017-06-03 20:50:21 2881

原创 关于myBatis与SQLserver 配合使用,查询类型为Date的数据时,日期会减少两天的问题

数据库是SqlServer 2008,项目用的spring+springmvc+myBatis,在查询的时候,只要数据库里面的时间类型是date类型的,查询出来的数据会比数据库里面的数据少2天。

2017-05-31 20:25:16 9616 2

空空如也

空空如也

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

TA关注的人

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