• @ConfigurationProperties 注解


    @ConfigurationProperties注解获取配置文件application.yml或application.properties中配置的属性值,并注入Bean中。

    如springcloud getway的配置

    spring:
      application:
        name: getway-server
      cloud:
        gateway:
          discovery:
            locator:
              enabled: true #开启服务发现,可以服务作为转发目标,为 false 时使用地址转发
          routes:
            # 认证中心
            - id: admin-server
              uri: lb://admin-server #转发后的微服务名 以lb开头
              #uri: http://localhost:8001 #转发后的地址
              predicates:
                - Path=/admin/**   #请求断言,以路径方式以author开头的请求路径转发到uri,官方提供多种断言方式,可结合使用
              filters:
                - StripPrefix=1 #过滤器,对请求进行一系列操作,如请求,权限认证,鉴权,监控,限流,转发等,StripPrefix 去掉一层请求(去掉admin)       
    

    GatewayProperties.java

    
    /**
     * @author Spencer Gibb
     */
    @ConfigurationProperties("spring.cloud.gateway")
    @Validated
    public class GatewayProperties {
    
    	private final Log logger = LogFactory.getLog(getClass());
    
    	/**
    	 * List of Routes.
    	 */
    	@NotNull
    	@Valid
    	private List<RouteDefinition> routes = new ArrayList<>();
    
    	/**
    	 * List of filter definitions that are applied to every route.
    	 */
    	private List<FilterDefinition> defaultFilters = new ArrayList<>();
    
    	private List<MediaType> streamingMediaTypes = Arrays
    			.asList(MediaType.TEXT_EVENT_STREAM, MediaType.APPLICATION_STREAM_JSON);
    
    	/**
    	 * Option to fail on route definition errors, defaults to true. Otherwise, a warning
    	 * is logged.
    	 */
    	private boolean failOnRouteDefinitionError = true;
    
    	public List<RouteDefinition> getRoutes() {
    		return routes;
    	}
    
    	public void setRoutes(List<RouteDefinition> routes) {
    		this.routes = routes;
    		if (routes != null && routes.size() > 0 && logger.isDebugEnabled()) {
    			logger.debug("Routes supplied from Gateway Properties: " + routes);
    		}
    	}
    
    	public List<FilterDefinition> getDefaultFilters() {
    		return defaultFilters;
    	}
    
    	public void setDefaultFilters(List<FilterDefinition> defaultFilters) {
    		this.defaultFilters = defaultFilters;
    	}
    
    	public List<MediaType> getStreamingMediaTypes() {
    		return streamingMediaTypes;
    	}
    
    	public void setStreamingMediaTypes(List<MediaType> streamingMediaTypes) {
    		this.streamingMediaTypes = streamingMediaTypes;
    	}
    
    	public boolean isFailOnRouteDefinitionError() {
    		return failOnRouteDefinitionError;
    	}
    
    	public void setFailOnRouteDefinitionError(boolean failOnRouteDefinitionError) {
    		this.failOnRouteDefinitionError = failOnRouteDefinitionError;
    	}
    
    	@Override
    	public String toString() {
    		return new ToStringCreator(this).append("routes", routes)
    				.append("defaultFilters", defaultFilters)
    				.append("streamingMediaTypes", streamingMediaTypes)
    				.append("failOnRouteDefinitionError", failOnRouteDefinitionError)
    				.toString();
    
    	}
    
    }
    

  • 相关阅读:
    Python多版本共存
    Windows下安装glumy过程
    安卓手机刷机
    动态规划学习
    Linux下载源
    背包问题扩展
    mongol学习
    云爬虫测试
    arc的安装
    Centos
  • 原文地址:https://www.cnblogs.com/jinit/p/13460388.html
Copyright © 2020-2023  润新知