自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《Effective.Java》 阅码草堂笔记 一

首先来一个开宗明义查理论吸引客户的关键是把手头的事情做好。把已经拥有的客户照顾好,其他的自然会来找你,这一种说法我觉得不只是商业,投资…放之四地皆适之,这里我只是想告诫自己,对于现在的自己来说,我可能不能做很多事情,但是我应该把每一件事情尽可能的做好,我可以不那么快,但是我应该要那么好,刘慈欣用彻夜赶工的妓女来形容程序员,是二百多年前的码头背起重负的搬运工,说我们是「技术无产阶级」,确实在马云爸爸给我们争取的九九六的福报下好像确实是这样,顺应互联网的洪流,代码作为程序员的一种谋生手段,已经祛魅,因为不在神

2020-11-25 16:04:14 201

原创 Dubbo与spi扩展

首先了解一下JDK的SPIspi 全称为(Service Provider Interface),是JDK内置的一种服务提供机制。这个是针对厂商或者插件的。一般来说对于未知的实现或者对扩展开放的系统,通常会把一些东西抽象出来,抽象的各个模块往往有很多不同的实现方案,例如:日志模块、xml解析模块、jdbc模块等。实例package com.tan.spi.example;public interface People { void eat(String food);}packa

2020-05-27 08:33:31 227

原创 Spring源码阅读 五

接上文spring源码阅读 四解析默认标签中的自定义标签元素上文我们知道了默认标签解析函数的起始函数/** * Process the given bean element, parsing the bean definition * and registering it with the registry. * 1 委托BeanDefinitionDelegate类的par...

2020-05-03 11:34:17 232

原创 Spring源码阅读 四

默认标签的解析前面一章(点击查看)说了spring使用了俩种标签解析方式,下面这一章着重介绍一下spring的标签解析首先查看spring默认的解析方法,点击进入方法1 (parseDefaultElement)DefaultBeanDefinitionDocumentReader.java /** * 解析默认标签 * 4种情况,import、alias、bean、bea...

2020-05-02 11:48:40 153

原创 互联网协议的诗和远方(二)

这一篇接上一篇文章互联网协议的诗和远方(一),最近突然迷失在了屈原的离骚中,有对屈原爱国情怀深深折服,不过更多的还是对于古人智慧的一种感叹,第四次工业革命兴起的不仅仅给人带来了前所未有的便利,也剥夺了自然赋予人类想象的天赋,我们开始越来越快,灵魂好像有些跟不上身体的步划,每一个人都行色匆匆,上班下班,大城市的繁荣开始让我们不堪重负,理想被现实取代是一种常态,贪欲是一头恶犬,诗和远方成为人们茶余饭...

2020-04-19 10:10:41 186

原创 互联网协议的诗与远方(一)

我滴妈呀,不看不知道,一看吓一跳,前几天发现公司的缴费机器人是通过tcp协议和外界通信的,发现自己计算机网络是low的一批,得补一下王老师说,古今之成大事业、大学问者,必经过三种之境界: “昨夜西风凋碧树,独上高楼,望尽天涯路。” 此第一境也。 “ 衣带渐宽终不悔,为伊消得人憔悴。” 此第二境也。 “ 众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。”此第三境也,当然互联网有五种境界 (五层...

2020-04-18 10:39:06 250

原创 Spring源码阅读 三

获取Domcument在 XmlBeanDefinitionReader.doLoadDocument() 方法中做了两件事情,一是调用 getValidationModeForResource() 获取 XML 的验证模式,二是调用 DocumentLoader.loadDocument() 获取 Document 对象,上文我们获取了xml文件的验证方式 ( 传送门 ),接下来我们看一下获取...

2020-03-28 18:45:57 165

原创 openStack入门到精通一

OpenStack介绍虚拟化虚拟化是一种具体的技术,指把实体资源虚拟化,按照对象可以分为计算机虚拟化,存储虚拟化,网络虚拟化等等,一个最大的好处就是提高硬件资源利用率维基百科定义:在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或...

2020-03-28 10:07:22 396

原创 深入浅出Cookie -SameSite,冲冲冲

HTTP一说到http(http1.x),我们想到的第一个词语,可能就是无状态协议了,但是什么是无状态协议,维基百科是这样解释的:无状态协议是指把每一种请求都是做为与之前请求都无关的独立的事务的服务器简单粗暴的理解就是同一个客户端连续发送两次请求给服务器,服务器也识别不出来这是同一个人发送的请求,这就导致了一个问题就是你不能刷新页面,这样一来,那还搞个鬼,好不容易可以上一下网,还不敢刷新页面,...

2020-03-25 21:14:19 1621

原创 Spring源码阅读 二

你与春风皆过客,我携明月共长生

2020-03-25 14:55:17 198

原创 Kubernetes 学习记录 二

组件说明k8s的前身是borg系统,这里我先说一下谷歌的borg系统BorgMaster:主要负责资源分发,包含多个副本,对于高可用集群来说,最好保持3个以上的奇数Borglet:提供各种计算能力scheduler:调度器,会把数据写入Paxos(谷歌键值对数据库)K8S架构c/s架构 http协议主组件(master组件)**scheduler:**调度器,选择合适的节点分配任务...

2020-03-23 21:11:19 93

原创 JAVA 设计模式之原型模式

场景问题考虑实际应用:订单处理系统现在有着这样一种系统,里面有一个保存订单的业务功能,在这个功能中,客户有这样一个需求当订单产品超过1000时候,就需要把订单拆分为两分订单,如果拆分之后还是超过1000,那么继续拆分,直到每笔订单数量不超过1000解决方案使用原型模式来解决问题定义 用原型实例类指定创建对象的种类,并通过拷贝这些原型创建新的对象思路原型模式要求对象实现一个可以克隆...

2020-03-17 11:02:42 166

原创 Spring源码阅读 一

第一章 Spring整体架构spring框架是一个分层架构,它包含一系列的功能要素,并大约被分为20个模块这些模块被总结为一下几个部分( 一 )Core Container核心容器包含core,beans,context和Expression Language(表达式语言)模块core和bean是框架的基础部分,提供ioc(控制反转)和依赖注入等等特性core模块主要包含了sprin...

2020-03-17 10:01:25 168

转载 RBAC-基于角色权限的访问控制和基于资源的权限访问控制

我们开发一个系统,必然面临权限控制的问题,即不同的用户具有不同的访问、操作、数据权限。形成理论的权限控制模型有:自主访问控制(DAC:Discretionary Access Control)、强制访问控制(MAC: Mandatory AccessControl)、基于属性的权限验证(ABAC: Attribute-Based AccessControl)等。最常被开发者使用也是相对易...

2020-03-03 15:22:10 4071

原创 Kubernetes 学习记录 一

k8s是容器集群管理系统,是一个开源的平台,可以实现容器的自动化部署,自动扩缩容,维护等功能

2020-02-27 15:01:04 157

转载 微服务下的分布式事务

什么是事务事务(Transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性:原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整...

2020-02-26 09:05:20 276

原创 微服务面试笔记

什么是微服务就目前而言,对于微服务业界并没有统一的标准的定义,多少通常而言,微服务是一种架构模式,或者说是一种架构风格,他提倡将单一的应用程序划分为一组小的服务,每一个服务运行在自己独立的进程之中,服务相互协调配合,为用户提供最终价值,服务之间采用轻量级的通信机制互相沟通通常是基于http的restfu api的风格调用,一个服务围绕具体业务进行构建,并且可以独立部署到生产环境,类生产环境技术...

2020-02-24 21:53:40 285 1

原创 webpack使用自定义打包报错原因

webpack使用自定义打包报错报错结果截图这里我使用的是webpack 3.6查阅官方文档发现为webpack版本冲突,下载webpack-dev-server 为2.9.1(或者其他低于webpack版本)安装成功安装命令行 cnpm insatll [email protected] -D...

2020-02-24 21:53:27 301

原创 快速入门中间件 RabbitMQ消息中间件

消息队列解决的问题:异步处理应用解耦流量削峰日志处理AMQP:Advanced Message Queuing Protocol ,一个通过统一的消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计安装步骤官网地址:https://www.rabbitmq.com/install-windows.html 下载对应版本,rabbitmq是用erla...

2020-02-24 21:53:01 144

原创 Spring Security oAuth2

什么是oauthoauth协议为用户资源的授权提供了一个安全的简易的标准,与以往授权不同的是oauth的授权不会使第三方触及到用户的账号信息,第三方不需要使用用户的用户名和密码就可以申请该用户的资源名词解释第三方应用程序:客户端http服务提供商:我们的云笔记产品以及 QQ、微信等都可以称之为“服务提供商”。资源所有者:用户用户代理:浏览器认证服务器:服务提供商专门用来处理认证的服务...

2020-02-24 21:52:46 155

原创 怎么快速在windows环境下搭建一个Django框架,并且连接MySql

第一步:打开终端,进入项目路径 ,输入django-admin startproject demo1(你的项目名)这是我的项目结构 (输入tree . /F可以查看结构)第二步:打开MySql服务 ,这里我用的是Navicat客户端 (Django默认使用SQLite数据库,大家可以自行百度一下)进入settings.py中配置数据库,并且在_init_.py 加入import p...

2020-02-24 21:52:34 551 2

原创 RocketMQ设计原理

路由注册,发现,剔除机制rocketMq topic路由的注册,相当于dubbo来说 (实时模式),采用的是拉取模式Broker每30秒向NameServer发送心跳包,心跳包包含主题的路由信息,NameServer会通过HashMap更新NameServer以每10s的频率清除已宕机的Broker,NameServer会任务Broker宕机的依据是如果当前系统时间戳件去最后一次收到Bro...

2020-02-24 21:48:58 250

原创 MQTT学习记录

是什么MQTT(遥感传输)是由IBM的Andy Stanford-Clark博士和Arcom(现在的Eurotech)的Arlen Nipper在1999年发明的。是一个机器对机器(M2M)/“物联网”连接协议,设计为一种非常轻量级的发布/订阅消息传输。MQTT的默认端口号是1833,官网的原文是这样子的:Are there standard ports for MQTT to use?...

2020-02-24 09:54:47 329

原创 Serverless开发实战——FASS

函数计算按官方定义函数计算事件启动,全托管的计算服务,优点:不需管理基础设施,实时的弹性伸缩,高可用,低成本传统开发与函数计算体验传统开发流程函数计算流程,提供的命令行初始化项目init依赖管理Nas instart本地调试运行Local Start Local Invoke继承测试Local Start打包发布Package De...

2020-02-20 19:47:22 911

原创 Spring 源码构建 报错ReactiveAdapterReg 找不到符号

https://blog.csdn.net/ULiYJ/article/details/95760122 跟着这篇博客完成的,有效,我编译的是spring5.1,所以导入的是

2020-02-11 16:55:13 463

原创 读高利曼昆的经济学原理(二)

供给、需求与政府政策价格控制价格是隐藏在供给和需求曲线背后的千百万企业和消费者决策的结果,价格有平衡供求,从而协调经济活动的关键作用。当决策者合法公布的方法来确定价格时,他们就模糊了正常指引社会资源配置的信号。价格控制影响市场结果价格上限影响市场结果政府对竞争市场实行限制性价格上限时,产生物品短缺,而且卖着必然大量潜在买者中配给稀缺物品,这种价格上限之下产生的配给机制很少是合意的,...

2020-02-10 10:02:16 3314

原创 读高利曼昆的经济学原理(一)

人们如何做出决策经济只是在生活中相互交易的一群人,经济的本质就是对稀缺资源的合理配置,一个人的经济行为反映了组成这个经济的个人行为1.1:人们面临权横取舍天下没有免费的午餐,为了得到我们喜爱的东西,我们不得不放弃另一位我们喜欢的东西,????和????不可兼得大炮和黄油之间的选择 ,将更多的钱用于国防=>用于提高人们生活水平的消费品(黄油)减少清洁的环境和高收入 企业减少污染=>增加生...

2020-02-06 14:27:39 1656

原创 Ubuntu 18 搭建openjdk源码 报错误 configure: error: Could not find required tool for ZIPEXE

前几天看完了深入理解 Java 虚拟机-JVM 高级特性与最佳实践(第2版) 这本书突发奇想想研究一下jdk的源码,所以在csdn上把自己的搭建过程记录一下,避免下次踩坑(虽然我也看不懂 卑微 有需要的小伙伴可以加我QQ:3097124743, 还有其他关于多线程,react,设计模式等也可以提供)准备开始1. 首先下载openjdk11源码 ,我的环境是ubuntu18我这里使用的dock...

2020-02-04 12:53:30 2040 2

原创 JAVA设计模式之生成器模式

场景问题在讨论工厂方法模式的时候,我们提到了一个导出数据的应用框架,对于导出数据的应用框架,通常在导出数据上面=,会有一些特定的方式,比如导出的文本格式,xml格式,在上节中,我们只考虑了如何选择具体导出方案,并没有涉及任何实现,如果我们现在对于导出数据的格式有如下要求导出的文件,不管什么格式,都有三个部分,即头文件,文件体和文件尾在文件头部分,有以下描述信息:分公司和门市点编号,导出数据...

2020-01-31 16:10:39 213 1

原创 汇编语言-day2 下

接上文汇编语言-day2上栈栈是一种后进先出的存储空间,栈一般有两种操作方式:入栈(将新元素放入栈顶)和出栈(从栈顶取出一个元素)LIFOcpu提供的栈机制现在cpu中都有栈的设计,8086cpu也不例外,在基于8086编程的时候可以将一段内存当作栈来使用8086cpu提供的最基本的入栈和出栈命令最基本的就是push和pop(以字为单位进行),一般来说,8086中有两个寄存器,段寄存器s...

2020-01-29 16:27:49 99

原创 汇编语言-day2上

寄存器一个典型的cpu由运算器,控制器,寄存器等器件构成,这些器件靠内部总线相连,简单来说,在cpu中,运算器进行信息处理,寄存器进行信息存储,控制器控制各种器件进行工作,内线总线连接各种器件,在他们之间进行数据传递,对于汇编程序员来说,寄存器是cpu中可以用指令读写的部件,不同的cpu,寄存器的个数和结构是不相同的,每一个寄存器都有自几的名称,AX,BX,CX,DX。。。。通用寄存器808...

2020-01-27 14:14:43 306

原创 汇编语言-day1下

(接上一篇文章 汇编语言day1)内存地址空间我们假设一个cpu的地址总线宽度是10,那么可以寻址1024个内存单元,那么1024个可寻到的内存单元就是这个cpu的内存地址空间主板每一台pc机中,都有一个主板,主板上有一些核心器件和主要器件,这些器件提供总线连接(数据总线,地址总线,控制总线),这些器件有CPU,存储器,外围芯片组等接口卡计算机系统中,所有可用程序控制其工作的设备,必须...

2020-01-26 21:40:58 148

原创 汇编语言 - day1上

每日一句A man has to be what he is, can’t break the mold.人必须忠于自己,不能违背本性。基础知识汇编语言是直接在硬件之上工作的编程语言,所以我们必须先了解硬件系统的结构才可以有效的应用汇编语言对它编程机器语言说汇编语言的产生,我们必须说一下机器语言,机器语言是机器指令的集合,机器指令展开来说就是一台机器可以正确执行的命令,电子计算机的机器...

2020-01-26 20:39:43 191

原创 JAVA 设计模式之抽象工厂模式

场景问题举一个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常要选择一系列配件,比如CPU,硬盘,内存,主板等,这里我们只考虑CPU和主板问题选择不同的CPU和主板,是每一个客户在组装电脑的时候,向装机公司提出的要求,也就是我们自己制定的装机方案,在确定这个方案之前,我们也需要考虑到个个配件之间的兼容性,但是对于装机工程师来说,它只知道组装一台电脑,需要相应的配件,但是具体使用什么还是...

2020-01-26 17:44:03 99

原创 JAVA 设计模式之工厂方法模式

场景问题考虑到这样一个场景:实现一个导出数据的应用框架,来让客户选择数据的导出方式,并执行真正的数据导出,分析这个场景,我们可以发现,不管是用户选择导出什么样的格式,最后导出的都是一个文件,因此,应该有一个统一的接口来,我们假设这个接口是ExportFileApi描述最后生成的对象,并操作输出文件,对于导出数据的业务功能对象,他应该根据需要来创建相应的文件导出接口的实现对象,他是与业务息息相关的...

2020-01-24 18:43:14 73

原创 关于2019年的自我反思与评价

古人诚我不欺,光阴似箭,日月如梭,这句话总是对的,2019年对于我来说就像铁道旁银白色的橡树,在急速的退后,在开往在雪国的列车里,2020向我健步走来...

2020-01-21 12:59:54 233 1

原创 JAVA设计模式之单例模式

场景问题读取配置文件的内容,这些配置文件都是由开发人员定义的,在里面定义一些应用需要的参数,当然在实际应用中这种配置文件的格式有不一样,springboot有yml,properties格式的,ssm有xml格式的不同模式的解决方案使用单例模式解决问题直接使用java读取配置,这里不做代码说明,但是我们可以想像,客户端要想使用我们的配置类,需要new 一个配置App的实例,如果我们很多地方...

2020-01-17 13:24:41 86

原创 mysql 优化学习

使用docker拉取mysq镜像docker pull mysql:5.7运行docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7进入容器,执行mysqldocker -it exec "容器id" /bin/bashmysql -u root -p123456 -h 192...

2020-01-17 12:36:22 95

原创 JAVA设计模式之适配器模式

场景问题旧的电源类和旧的硬盘类配合得很好,但是此时如果加入一个新的硬盘类,他们的接口可能不匹配,即怎么用原有的电源类匹配新的硬盘类不同模式下的解决方案使用适配器来解决问题定义: 将一个类的接口转为客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作示例代码/** * 定义客户端使用的接口 */public interface Target ...

2020-01-16 20:27:28 78

原创 JAVA設計模式之外观模式

场景问题示例:组装电脑通常一般来说有俩种方案,一种是自己组装,第二种是找到装机公司,告诉他们具体要求,然后等着拿电脑就好了,如果把上面的过程看作是一个系统,那么第二种方案的装机公司就相当于我们外观模式(facade)不同场景下的解决方案以代码生成工具为例,假使我们的代码生成工具生成的模块都具有三层架构(表现层,逻辑层,数据层)我们要想实现这个简单的工具,需要描述配置的数据Model,获取...

2020-01-14 10:20:37 84

空空如也

空空如也

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

TA关注的人

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