Zuul源码阅读—Springcloud.Netflix.Zuul

1-SpringCloud中的Zuul使用

1.1-Zuul的Maven依赖

        <!--引入 zuul-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>

1.2-主启动类添加注解

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication//
@EnableZuulProxy//
public class SpringCloudZuulDomeApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringCloudZuulDomeApplication.class, args);
    }
}

2-源码分析

2.1-@EnableZuulProxy注解

@EnableCircuitBreaker//开启断路器(hystrix)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(ZuulProxyMarkerConfiguration.class)//引入ZuulProxyMarkerConfiguration类
public @interface EnableZuulProxy {

}

//ZuulProxyMarkerConfiguration新建个Marker的bean,让ZuulProxyMarkerConfiguration 配置生效
//后面的Zuul配置会根据是否有这个Maker对象而使配置生效(ZuulProxyAutoConfiguration配置类)
@Configuration(proxyBeanMethods = false)
public class ZuulProxyMarkerConfiguration {
	@Bean
	public Marker zuulProxyMarkerBean() {
		return new Marker();
	}
	class Marker {
	}
}

2.2-Zuul的自动配置类

spring.factories中的自动配置类

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.cloud.netflix.zuul.ZuulServerAutoConfiguration,\
org.springframework.cloud.netflix.zuul.ZuulProxyAutoConfiguration

//@SpringBootApplication注解会读取spring.factories中的配置类,进行自动配置

org.springframework.cloud.netflix.zuul.ZuulProxyAutoConfiguration的父类是org.springframework.cloud.netflix.zuul.ZuulServerAutoConfiguration,先看看 ZuulServerAutoConfiguration

2.2.1-ZuulServerAutoConfiguration.java

        ZuulServerAutoConfiguration类,初始化了ZuulHandlerMapping、ZuulController、ZuulServlet、zuulProperties

2.2.2-ZuulProxyAutoConfiguration.java

        ZuulProxyAutoConfiguration类,其重要的一点是会初始化RibbonRoutingFilter,PreDecorationFilter,SimpleHostRoutingFilter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值