自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM类加载机制

JVM加载一个类的生命周期加载class验证–>验证class文件信息准备–>给类变量加载到内存中分配内存并且设置初始值,如类中int a = 123; 那么需要给a分配4byte的内存并且初始值为0解析–>把class中符号引用转为对第三步分配好的内存的直接引用初始化–>赋予真实的值,比如 int a = 123;把123赋值给a所直接引用的那块内存。2、执行静态代码块使用–>正常运行卸载类加载器的种类启动类加载器(Bootstrap ClassLo

2020-08-07 15:37:34 107

原创 关于循环依赖

Spring Bean创建的生命周期Spring启动时扫描类–>BeanDefinition(Bean定义)实例化Bean的空对象(原始对象)给实例对象填充属性(添加依赖等)Aware,initBeanPostProcessor(Bean后置处理器)对前面生成的对象进行加工、存入单例池singletonObjects.put(beanName, singletonObject);问题1:BeanA与BeanB互相依赖,当Spring创建A时,往A注入B时会从单例池中获取B,但是B又

2020-08-03 17:38:36 189

原创 mybastis-spring之包扫描源码分析

上代码!package com.gao.www.config;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Bean;import org.springfra

2020-07-15 11:15:44 201

原创 SpringAOP应用

需求:在程序被调用某个方法时,对这个方法添加额外的前置处理的代码,后置处理代码,计算他的消耗时间。在不影响业务代码(被调用的方法)的情况下,实现这个功能。@EnableAspectJAutoProxy开启SpringAOP,通常在spring主程序中使用,会扫描到使用@Aspect注解定义过的类,并且执行该AOP@SpringBootApplication@EnableAspectJAutoProxypublic class OrderApplication { public stati

2020-06-16 11:48:18 122

原创 Zuul网关

在微服务应用中有许多服务需要有相同的业务,如用户信息验证。如果在每个微服务都写一遍这个代码会不便于后期管理。像这种业务代码可以创建一个网关服务交给他处理。服务消费者调用服务时不直接调用具体的微服务而是通过调用网关服务,再由网关分发进行调用。一些校验的逻辑,比如登录校验可以交给网关服务来处理搭建Zuul网关服务一、添加Zuul依赖并且注册到Eureka中 <dependency> <groupId>org.springframework.c

2020-06-09 14:49:29 103

原创 ConfigServer配置中心

在实际应用中,一个系统的每个微服务都会有相同的配置,如数据库配置信息等等。为了将每个微服务的公共配置可以抽取出来。SpringCloud提供了Config配置中心的配置,作为配置中心(ConfigServer),提供给微服务(ConfigClient)读取并且加载配置。使用git仓库存放配置文件,SpringCloudConfig读取到之后会自动加载配置。配置文件可以是.yml、.properties后缀,SpringCloudConfig读取到之后会自动加载。###搭建ConfigServer#

2020-06-09 14:48:59 870

原创 服务调用异常处理(Hystrix)

当服务提供者出现异常时,会抛出异常并且只给消费者响应到错误页面如果需要对这些异常进行处理,编写补救措施代码怎么办?Feign组件集成了Hystrix熔断器供我们处理服务调用异常。使用一、开启Hystrix消费端application.yml添加配置feign: hystrix: enabled: true #开启hystrix二、创建异常处理实现类1、继承Feign的接口,并实现接口函数。添加@Component注解注入到Spring容器中。2、不仅要实现接口的函数,接口函

2020-06-09 14:48:09 3312 1

原创 Ribbon负载均衡

服务提供端如果压力大,通常使用集群的方式增强服务并发量,将请求均衡的分布到各个服务器就叫做负载均衡。Feign组件包含了Ribbon组件,只要依赖了Feign调用服务提供者(EurekaClient)接口就能默认使用Ribbon实现负载均衡。Ribbon默认使用轮询策略,即集群中多个服务提供者被依次调用,如果想修改策略,可以使用Ribbon自带的策略或者自定义修改策略规则有两种方式,需要对服务消费者进行改动方式一、application.yml文件添加配置。写法规则为:目标服务应用名: ri

2020-06-09 14:47:04 115

原创 微服务之间传递java对象

需求服务消费端调用服务提供端传递Java对象,服务消费端返回java###用到的注解@RequestMapping@RequestBody步骤一、服务提供端1、服务提供端暴露的接口函数设置注解@RequestMapping2、函数中被传递的对象使用@RequestBody注解3、return一个对象给服务消费端package com.huiche51.www.controller;import com.huiche51.www.pojo.Product;import com.hu

2020-06-09 14:46:16 2284

原创 Eureka与集群

集群步骤一、Eureka服务端集群(Eureka-Server)创建多份Eureka服务,让他们注册彼此,Eureka客户端随意连接其中一台Eureka服务。下面代码描述3份Eureka服务的配置。server: port: 8861 #Eureka服务端口号eureka: instance: hostname: eureka1 #主机名 client: service-url: #Eureka Server地址 defaultZone: http://eur

2020-06-09 14:45:08 99

原创 SpringCloud分布式微服务搭建

需求:1、服务提供者到注册中心注册服务。2、服务消费者订阅注册中心获取注册中心的服务列表。3、根据服务列表调用想要调用的服务。原理:根据需求分三种类型的服务端,注册中心服务端,服务提供端和服务消费端。其中注册中心服务端声明为EurekaServer,服务提供端和服务消费端声明为EurekaClient,EurekaClient会被注册到EurekaServer中。服务消费端通过Feign可通过注册中心获到服务提供端的地址,并且调用消费。搭建:一、搭建注册中心1、添加Eureka服务端依赖

2020-06-09 14:38:59 105

空空如也

空空如也

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

TA关注的人

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