自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (2)
  • 收藏
  • 关注

原创 Dubbo服务注册原理

文章目录1注册步骤2 猜想:3源码分析3.1 @DubboComponentScan1注册步骤使用注解@DubboService或@Service扫描注解@DubboComponentScan2 猜想:(1)扫描注解(2)组装url(3) 注册到注册中心(以zookeeper为例)(4)启动服务(根据url中配置的协议、端口去发布对应的服务)先注册还是先启动?3源码分析3.1 @DubboComponentScan@Target({ElementType.TYPE})@Rete

2021-05-08 06:11:22 480

原创 Dubbo的核心之SPI

文章目录1 Java SPI扩展点实现1.1 Java SPI示例演示2 Dubbo SPI2.1 示例代码2.2 源码分析1 Java SPI扩展点实现SPI(Service Provider Interface):原本是jdk内置的服务提供发现机制,主要用来做服务的扩展实现。SPI机制在很多场景。都有用到,比如数据库连接,JDK提供了java.sql.Driver接口,而驱动类由不同的厂商来实现,比如MySQL、Oracle等,所有的数据库驱动包会实现这个接口,然后jdk利用SPI机制从classp

2021-04-30 14:35:37 163

原创 Dubbo的使用

文章目录是什么怎么用是什么dubbo的发展历史请参考官网 dubbo官方文档dubbo本身就是一个服务治理框架,不需要集成其他插件就可以实现服务注册、负载均衡、服务容错、服务监控等功能,适用于数据量的小的项目,只需使用一个框架就可以实现上述功能。怎么用1 .建立一个maven工程spring-boot-dubbo-example,创建模块spring-boot-dubbo-provider和spring-boot-dubbo-consumer模块,创建spring-boot-dubbo-api

2021-04-29 15:55:48 229

原创 SpringCloud gateway的使用

文章目录1 是什么1.1 网关的作用2 怎么用2.1 怎么用1 是什么API网关:在微服务之前增加一个前置节点,这个节点就是网关。网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问。Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。1.1 网关的作用性能:

2021-03-31 17:13:54 505

原创 SpringCloud hystrix的使用

hystrix的使用1 是什么2 怎么用2.1 熔断触发降级2.1.1 添加依赖2.1.2 创建访问层2.2 请求超时触发降级2.3 整合OpenFeign1 是什么分布式系统下,服务之间都是相互依赖的,一个服务可能依赖多个服务,当某一个服务不可用时,请求线程被阻塞,当有大批量请求时,最终可能导致整资源耗尽,无法继续对外提供服务,从而造成雪崩。为了解决雪崩现象,使服务高可用、具有稳定性,我们的服务应当具有自我保护能力,当依赖服务不可用时,当前服务启动自我保护功能。Hystrix是Netflix开源的一

2021-03-26 14:35:23 140

原创 Spring Cloud Config原理

文章目录1 @Value注解2 Spring Environment的初始化3 Profiles4 Properties1 @Value注解通过上篇代码可知,我们只需要使用 @Value 注解,就能完成属性的注入。而 @Value 基于 Environment 的机制。我们先来看一下 @Value的注入过程2 Spring Environment的初始化3 Profiles4 Properties...

2021-03-19 17:30:59 454

原创 SpringCloud Config的使用

文章目录1 是什么2 怎么用2.1 创建Config Server工程2.2 Config Client获取配置3 动态配置刷新3.1 使用actuator3.2 使用Spring Cloud Bus4 源码地址1 是什么Spring Cloud Config:服务配置中心,为服务端和客户端提供了分布式系统的外部化配置支持。2 怎么用2.1 创建Config Server工程本工程也整合了Eureka作为服务注册中心,不熟悉的可参考之前文章SpringCloud Eureka的使用1 在git或

2021-03-17 17:36:19 209

原创 SpringCloud Eureka的原理

文章目录1 服务注册中心原理1 服务注册中心原理1、服务注册是在SpringBoot应用启动的时候发起的,在refreshContext方法中完成。需要稍微跟一下SpringBoot的启动过程。跟踪过程如下:SpringApplication.run() -> this.refreshContext(context);- >this.refresh(context);->ServletWebServerApplicationContext.refresh()- >this.f

2021-03-12 17:30:11 364

原创 SpringCloud Eureka的使用

文章目录1 是什么2 怎么用2.1 创建工程2.2 添加注解@EnableEurekaServer2.3 在application.properties中增加配置1 是什么服务注册与发现的组件。Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装。主要负责完成微服务架构中的服务治理功能。2 怎么用2.1 创建工程创建SpringBoot工程,取名:spring-cloud-eureka-server,作

2021-03-10 17:03:28 170 1

原创 SpringCloud OpenFeign使用及原理

OpenFeign使用及原理1.是什么2.怎么用2.1 增加依赖2.2 定义服务接口2.3 定义访问服务的控制层2.4 在程序启动类加@EnableFeignClients1.是什么OpenFeign是一个伪客户端,为微服务架构下服务之间的调用提供了解决方案,之所以是伪客户端是因为它不做任何的请求处理。Feign通过处理注解生成request,从而实现简化HTTP API开发的目的,即开发人员可以使用注解的方式定制request api模板,在发送http request请求之前,feign通过处理注解

2021-03-05 18:22:10 1083 3

原创 SpringCloud Netflix之ribbon的原理一

上一篇讲述了ribbon的使用,这篇记录下ribbon的原理通过上篇代码可以猜想 @LoadBalanced主要做了两件事:(1) 解析配置文件中的服务列表(2)利用负载均衡算法实现请求的分发为什么加了 @LoadBalanced 注解就能实现负载均衡?首先看下 @LoadBalanced注解,其中最关键的 @Qualifier注解,当有多个bean时使用此注解意思为合格者,需要spring加载到容器中加上 @LoadBalanced注解之后会被自动装配类LoadBalancerAutoCo

2021-03-02 11:52:17 136

原创 SpringCloud Netflix之ribbon的使用

一 是什么Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。简而言之,在客户端实现负载均衡的工具。二 怎么用先创建两个工程,一个作为消费方,另一个作为服务方,比如用户服务和订单服务。订单服务(spring-cloud-order-service)作为消费方需要访问用户服务,需要做的操作如下:(1) 在po

2021-02-25 14:57:27 385 1

原创 Field XXX required a bean of type xxx SpringBoot启动报错

@ CartServiceImpl](这里写自定义目录标题)1 没有给dao层加@Mapper注解2 @Mapper注解包名引用错误3 主程序类没有加@MapperScan注解4 Bean所在的包名扫描不到,主程序类所在的包不包含该包。比如主程序类所在包为:com.atxiaohou.gmall.cart 但是所用到的bean在com.atxiaohou.gmall.util下,这两者是没有包含关系所以启动报错解决将主程序类移动到主包路径下,避免其他bean也出现同等错误...

2021-01-07 17:20:23 749

原创 从零开始建立自己的网站_准备篇(1)

从零开始建立自己的网站建站之前准备域名服务器备案插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入建站之前准备域名:服务器:备案:搭建环境域名服务器安装软件yum -y install vsftpd备案强调文本 强调文本加粗文本 加粗文本标记文本删除文本引

2020-07-19 17:10:38 163

原创 nginx安装手册及域名映射

一 nginx安装环境1.gcc安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,查看是否已安装命令:gcc --version如果没有gcc环境,需要安装:yum install gcc-c++ -y2.PCREPCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。3. 查看pcre是否已安装命令

2020-07-19 17:01:32 146

原创 SpringBoot自动装配原理分析有图有真相

前面已经手写了starter组件(链接),这次通过源码来分析下自动装配原理SpringBoot特点之一就是约定大于配置,通过扫描约定目录下的特定文件进行解析,解析完成之后通过自动装配类,将Bean加载到容器中。SpringBoot启动类很简单,加上@SpringBootApplication,运行SpringApplication.run方法即可。1.@SpringBootApplication如下图片说明:前四个都是元注解,就不解释了,其余三个@SpringBootConfiguration

2020-07-16 22:48:32 1518 1

原创 手写SpringBoot-starter组件

一:手写starter组件步骤:SpringBoot有个很好的特性,即开箱即用,只要引入对应的starter组件,使用@Autowired注解即可实例化Bean,那原理是怎么的呢?先通过手写一个简单的数据库连接的组件了解步骤,再通过代码看原理。1 . 创建XXXProperties 在此类上添加@ConfigurationProperties注解说明:@ConfigurationProperties是springboot提供读取配置文件的一个注解。其对应的bean的后置处理器为Configuratio

2020-07-11 17:53:57 473

原创 阿里云服务器ECS搭建FTP服务(centOS系统)

本人小白一枚,最近从零开始搭建网站,前期工作做完后就着手搭建环境了,搭建网站肯定需要上传下载文件,所以ftp服务不可或缺今天搭建FTP遇到一些问题,所以记录下安装vsftpd ,vsftpd是非常轻量级的软件,安装也很简单,远程连接云服务器之后直接执行命令安装命令: yum -y install vsftpd以下界面表示安装成功运行以下命令设置FTP服务开机自启动执行命令:systemctl enable vsftpd.service运行以下命令启动FTP服务 :systemctl st

2020-05-23 23:27:43 1013

原创 2020-05-21

DB2数据库中不乱码,Java类中查出来乱码数据库存储的数据是正常的,但是查出来发往其他系统的时候乱码了。解决:newString(str.getBytes(“ISO-8859-1”),“UTF-8”);含义:将原有8859-1的编码转换为utf-8。...

2020-05-21 09:58:37 111 1

原创 Springboot整合Mybatis+Dubbo时服务方启动报错Field XXX required a bean of type XXX that could not be found

今天搭建Springboot项目一直报错Field XXX required a bean of type XXX that could not be foundspringboot的配置文件中如果有spring.dubbo.base-package就会报错,去掉就启动成功。配置文件如下:报错如下:因为在service层有用到mapper类,一直加载不到类,所以就报错了。解决方法:...

2019-10-29 22:14:25 1077

原创 第五篇:Spring整合JdbcTemplate

一 JdbcTemplate 简介为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架。

2019-08-18 10:54:58 463

原创 第四篇:Spring之AOP

一 AOP是什么1 AOP概述●AOP(Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是对传统 OOP(Object-Oriented Programming,面向对象编程)的补充。●AOP编程操作的主要对象是切面(aspect),而切面模块化横切关注点。●在应用AOP编程时,仍然需要定义公共功能,但可以明确的定义这个功能应用在哪里,以什么方式应...

2019-07-28 21:35:32 98

原创 第三篇:Spring之AOP前奏

一 提出需求在项目中经常需要输出日志以定位问题,例如,在方法执行前执行后输出日志,如果不使用Spring的AOP功能该怎样实现呢?情景:数学计算器要求①执行加减乘除运算②日志:在程序执行期间追踪正在发生的活动③验证:希望计算器只能处理正数的运算1、常规操作在代码中实现日志代码:缺点:代码混乱,许多非业务需求代码加入。如果日志需求有变化则需要修改所有模块2、使用动态代理代理设...

2019-07-28 18:26:41 139

原创 第二篇:Spring中的Bean配置

Spring中的Bean配置在说bean配置之前需要先说下Spring中重要功能之一IOC容器:一 IOC容器IOC(Inversion of Control) :即反转控制,思想是反转资源获取的方向,传统方式是组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源。而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件, 组件所要做的仅是选择一种合适的方式来接收资源. 这...

2019-07-22 22:45:31 111

原创 第一篇:Spring之helloworld

一 Spring是什么Spring是一个开源框架,为简化企业级开发而生。具体描述如下:– 轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API– 依赖注入(DI — dependency injection、IOC)– 面向切面编程(AOP — aspect oriented programming)– 容器: Spring...

2019-07-21 20:57:59 91

原创 对list进行add或delete时不能使用foreach循环原因

对list进行add或delete时不能使用foreach循环原因TOC错误写法//对list进行add或delete时不能使用foreach循环时会报java.util.ConcurrentModificationException //错误写法 @Test public void testList() { List<String> list = new ArrayLi...

2019-07-11 21:38:53 845

原创 Linux系统学习

这是我的第一篇博客,先说下我的经历。我是一名java女程序猿,专业并非计算机,而是毫不沾边的外语,毕业之后去了培训机构培训了半年。我很幸运,去的机构很负责,教的东西也很多,那段时间真的和高考差不多。但是没有基础,也没有这方面的天赋,我学的并不算好,毕业后勉强找了份工作。这段时间深深感觉到自己退化了,好多培训时的知识都忘记了,又没有学习新知识,看书又看不懂,而且坚持不下去,现在趁着有时间还是从头学...

2019-03-29 21:18:44 120 1

GraphQL.pdf

Graphql java讲解及案例

2021-11-26

Mybatis逆向生成(java工程)

Mybatis逆向生成的工具类有很多,基本大同小异,只需简单修改xml文件中数据库用户名、密码,数据库名、表名以及具体的实体类名即可,简单方便,一键生成

2017-09-05

空空如也

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

TA关注的人

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