![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
敲代码的唐僧
这个作者很懒,什么都没留下…
展开
-
史上最通俗易懂的Mybatis源码分析之执行流程总结,5分钟就能看懂
一:Mybatis源码分析流程public static void main(String[] args) {try {// 基本mybatis环境// 1.定义mybatis_config文件地址String resources = "mybatis_config.xml";// 2.获取InputStreamReaderIo流Reader reader ...转载 2020-01-17 10:38:57 · 313 阅读 · 0 评论 -
深入MyBatis源码,理解Java设计模式之适配器模式,距离架构技术更近一步
写在前面:设计模式源于生活,而又高于生活!什么是适配器模式定义:将一个系统的接口转换成另外一种形式,从而使原来不能直接调用的接口变得可以调用。适配器模式角色划分适配器模式涉及3个角色:1.源(Adaptee):需要被适配的对象或类型,相当于插头。2.适配器(Adapter):连接目标和源的中间对象,相当于插头转换器。3.目标(Target):期待得到的目标,相当于插...转载 2020-01-16 09:37:46 · 183 阅读 · 0 评论 -
RedisRDB与AOF持久化机制的区别,你是否知道?
RDB存在哪些优势呢? 1). 一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。比如,你可能打算每个小时归档一次最近24小时的数据,同时还要每天归档一次最近30天的数据。通过这样的备份策略,一旦系统出现灾难性故障,我们可以非常容易的进行恢复。 2). 对于灾难恢复而言,RDB是非常不错的选择。因为我们可以非常轻松的将一个单独...转载 2020-01-15 10:00:36 · 222 阅读 · 0 评论 -
【架构师小技巧】微服务中五种跨域解决方案,你知道有多少?
网站跨域的五种解决方式1、什么是跨越? 一个网页向另一个不同域名/不同协议/不同端口的网页请求资源,这就是跨域。 跨域原因产生:在当前域名请求网站中,默认不允许通过ajax请求发送其他域名。 2、为什么会产生跨域请求? 因为浏览器使用了同源策略 3、什么是同源策略? 同源策略是Netscape提出的一个著名的安全策略,现在所有支持JavaScrip...转载 2020-01-14 10:21:25 · 1006 阅读 · 0 评论 -
浅谈Java代理设计模式,看完这篇文章瞬间秒懂了
什么是代理模式?为其他对象提供一种代理以控制对这个对象的访问。为什么使用代理模式?中介隔离:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。开闭原则,增加功能:代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额外的功能来扩展委托类的...转载 2020-01-13 15:02:56 · 136 阅读 · 0 评论 -
经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】
为什么要使用设计模式重构代码使用设计模式可以重构整体架构代码、提高代码复用性、扩展性、减少代码冗余问题。Java高级工程师装逼的技能!什么是策略模式策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现解决多重if判断问题。1.环境(Context)角色:持有一个Strategy的引用2.抽象策略(Strategy)角色:这是一个抽...转载 2020-01-10 13:48:47 · 428 阅读 · 0 评论 -
纯手写SpringBoot框架
什么是spring bootSpring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(...原创 2019-07-08 15:55:08 · 499 阅读 · 0 评论 -
纯手写HashMap集合
HashMap的实例有两个参数影响其性能:初始容量和加载因子。容量是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行rehash操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。在Java编程语言中,加载因子默认值为0.75,默认哈希表元为101[1]。...原创 2019-07-08 16:45:41 · 225 阅读 · 0 评论 -
跨域网站请求解决方案
第一节-彻底解决网站跨域请求问题引入第二节-网站跨域项目环境搭建题)第三节-模拟网站跨域问题演示第四节-网站跨域五种解决方案第五节-使用jsonp解决网站跨域问题第六节-使用httpclient内部转发解决跨域问题第七节-使用Nginx搭建API网关第八节-Nginx网关配置解决跨域问题第九节-使用Zuul网关解决跨域问题...原创 2019-07-12 17:25:21 · 166 阅读 · 0 评论 -
Nginx+Tomcat实现动静分离
Nginx(engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日...原创 2019-07-04 17:54:48 · 270 阅读 · 0 评论 -
纯手写LinkedList集合
LinkedList是基于双向链表实现的,LinkedList同样是非线程安全的,只在单线程下适合使用。public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable...原创 2019-07-10 16:10:34 · 139 阅读 · 0 评论 -
SpringBoot性能优化方案
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。第一节-SpringBoot性能优化之扫包优化第...原创 2019-07-05 17:44:20 · 1525 阅读 · 0 评论 -
纯手写SpringMVC框架
通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages( JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了 控制器、模型 对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。Lifecycle fo...原创 2019-07-11 16:56:18 · 637 阅读 · 0 评论 -
手写SpringIOC容器框架
IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下: 谁控制谁,控制什么:传统Java ...原创 2019-07-12 15:34:15 · 358 阅读 · 0 评论 -
浅谈Nginx负载均衡原理与实现
1 负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。2 测试环境由于没有服务器,所以本次测试直接host指定域名,然后在VMware里安装了三台CentOS。测试域名 :a.comA服务器IP :192.16...转载 2019-07-23 17:32:35 · 162 阅读 · 0 评论 -
2019全网最新SpringCloud2.0视频教程【免费学习】
SpringCloud视频教程是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风...原创 2019-08-07 15:07:17 · 446 阅读 · 1 评论 -
SpringCloud分布式配置中心
一、什么是分布式配置中心?Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端和客户端对SpringEnvironment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在任何其他语言运行的应用程序中使用。作为一个应用可以通过部署管道来进行测试...原创 2019-06-24 17:07:26 · 117 阅读 · 0 评论 -
Ribbon客户端负载均衡原理
在微软产品中Ribbon功能区Ribbon 最早应用于 Office 2007 中,后来也被运用到 Windows 7 的一些附件中,如画图(Paint)和写字板(Write)。在Windows 8中,Ribbon 被运用到文件资源管理器(File Explorer)中。在第三方应用中ESRI 推出的ArcGIS Explorer 9.4、Autodesk推出的AutoCAD、3DS ...原创 2019-06-27 15:18:48 · 515 阅读 · 0 评论 -
高性能微服务zuulGateway网关
课程目录第一节-互联网API接口的分类 第二节-架构师面试题如何设计一套API接口 第三节-ApiGateway网关的作用 第四节-Nginx与Zuul的区别 第五节-使用网关拦截请求参数 第六节-搭建ZuulGateway服务 第七节-搭建ZuulFilter拦截请求参数 第八节-Zuul网关负载均衡效果演示 第九节-搭建动态Zuu...原创 2019-06-27 15:16:15 · 446 阅读 · 0 评论 -
新手到底怎么学习Java?
我总是想起三年前的我,想入门而不得。门都找不到,没人给我建议。用什么书,怎么学,统统没头绪。我大学计算机专业。15年离开学校时,只是普普通通的网民,平时电脑有问题,只用360或者暴力关机的那种。毕业后利用业余时间学了一点C的皮毛,目前正在自学javaSE。作为完全零基础,我必须先声明:自学难度很大,新手小白请做好打硬仗的准备。但如果真的热爱,你会甘愿为她花时间,恨不得了解她的全部的。我建议...转载 2019-06-14 17:58:54 · 789 阅读 · 1 评论 -
深入研究枚举单例底层原理
说到单例首先要提到单例模式,因为单例模式是单例存在的目的单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。单例,顾名思义:单独的实例。简单的说,单例是一个特殊的实例,在单例所属的类...原创 2019-06-20 14:40:45 · 391 阅读 · 0 评论 -
我们如何学好Java?
正在学习Java 计算机言语并且打算作为自己往后的发展方向,不幸的是你在学习中遇到了比较困惑而又不能处理的问题, 你必需求清晰以下几个很重要的问题和把握相对正确和合适自己学 习编程的办法,然后为自己解惑并不断的提高自己,终究到达一个大都企业入职的根本标准。首要,你要清楚自己学习Java的真实方针是否清晰,学习Java的想法是否是老练的。关于这个问题或许许多人都会嗤之以鼻,凭借我多年从事Java...转载 2019-06-17 14:14:36 · 204 阅读 · 0 评论 -
搭建Eureka高可用集群注册中心
第一节-SpringCloud服务注册与发现课程概述第二节-微服务服务治理技术概述第三节-服务注册与发现原理第四节-Eureka2.0服务注册中心第五节-搭建服务提供者注册到Eureka第六节-使用RestTemplate调用服务接口第七节-@LoadBalanced实现本地负载均衡第八节-Eureka2.0高可用集群环境搭建第九节-客户端调用Eureka...原创 2019-07-01 16:54:40 · 194 阅读 · 0 评论 -
彻底解决网站跨域请求
什么是跨域问题是两个项目之间用ajax(前端类似于后端技术httpClient技术)实现通讯,如果浏览器访问的域名地址与ajax访问的地址不一致的情况下,默认情况下浏览器会有安全机制,这个机制导致跨域问题,会无法获取到返回结果。浏览器跨域问题产生的原因:如果使用ajax请求调用第三方接口,如果ajax访问的接口域名和端口与浏览器访问的域名和端口号不一致的情况下,就会产生跨域问题(属于浏览器...原创 2019-07-01 16:56:58 · 234 阅读 · 0 评论 -
源头分析Https协议底层实现原理
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使...原创 2019-07-01 16:59:43 · 1239 阅读 · 0 评论 -
spring Cloud视频教程里面到底哪一个是讲解的比较系统的?今天我们来对比一下!
首先我们先来了解一下spring Cloud:spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来...原创 2019-06-18 17:24:20 · 2110 阅读 · 0 评论 -
MySQL主从复制与数据备份
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据...原创 2019-06-26 16:06:22 · 154 阅读 · 0 评论 -
最全Elasticsearch6视频教程
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建...原创 2019-06-26 16:08:57 · 4131 阅读 · 0 评论 -
Dubbo分布式框架原理分析
Dubbo是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和Spring框架无缝集成。编辑Remoting: 网络通信框架,实现了 sync-over-async 和 request-response消息机制.RPC: 一个远程过程调用的抽象,支持 负载均衡、 容灾和 集群功能Registry: 服务目录框架用于...原创 2019-06-26 16:12:45 · 208 阅读 · 0 评论 -
互联网API接口幂等设计
一般在服务调用时,读服务如果调用失败了,会自动按配置次数转移到别的服务上去请求。而写服务就不能重复请求,如果因为超时或者网络故障等原因被调用服务并没有返回成功的响应,服务调用方就认为是失败了,但很有可能的是已经成功了,如果继续重复请求写服务,如转账类的服务,可能会造成严重的后果。所以,写服务失败不能设计成继续发重复请求,被调用服务也要设计幂等性,即使重复请求,也不会造成影响。知道上面的背景,所...原创 2019-07-02 16:20:23 · 217 阅读 · 0 评论 -
高性能Nginx服务器
Nginx(engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日...原创 2019-07-02 16:22:57 · 140 阅读 · 0 评论 -
防止服务雪崩效应利器Hystrix
崩效应就是一种不稳定的平衡状态也是加密算法的一种特征,它指明文或密钥的少量变化会引起密文的很大变化,就像雪崩前,山上看上去很平静,但是只要有一点问题,就会造成一片大崩溃。 可以用在很多场合对于Hash码,雪崩效应是指少量消息位的变化会引起信息摘要的许多位变化。我国有线电视行业:产业升级将带来雪崩效应。 目前我国有线数字电视用户已经开始进入爆发性增长期,并将在1-2年后进入收入的高增长期。在与...原创 2019-07-02 16:26:26 · 280 阅读 · 0 评论 -
使用Jenkins实现自动化部署
功能Jenkins功能包括:1、持续的软件版本发布/测试项目。2、监控外部调用执行的工作。2启动首先保证系统中已经安装了jdk,最好是jdk1.5以上。第一种启动方法,切换到jenkins.war存放的目录,输入如下命令:$ java -jar jenkins.war如果需要修改端口可以使用如下命令:$ java -jar jenkins.jar--httpPort=8081然...原创 2019-06-24 14:23:42 · 123 阅读 · 0 评论 -
纯手写Mybatis框架
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache softwarefoundation迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Ac...原创 2019-06-27 15:12:33 · 232 阅读 · 0 评论