@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();

	}

}

posted @ 2020-08-08 21:21  复一日  阅读(478)  评论(0编辑  收藏  举报