package com.webank.weevent.gateway; import com.webank.weevent.gateway.filter.Fix302GlobalFilter; import com.webank.weevent.gateway.filter.LocalMemoryLimiter; import com.webank.weevent.gateway.filter.LogGlobalFilter; import com.webank.weevent.gateway.filter.UriKeyResolver; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.ApplicationPidFileWriter; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.cloud.gateway.filter.ratelimit.KeyResolver; import org.springframework.cloud.gateway.filter.ratelimit.RateLimiter; import org.springframework.context.annotation.Bean; /** * API gateway of WeEvent. * * @author matthewliu * @since 2020/01/20 */ @Slf4j @EnableDiscoveryClient @SpringBootApplication public class GatewayApplication { public static void main(String[] args) { SpringApplication app = new SpringApplication(GatewayApplication.class); app.addListeners(new ApplicationPidFileWriter()); app.run(); log.info("start gateway success"); } @Bean public static Fix302GlobalFilter getFix302GlobalFilter() { return new Fix302GlobalFilter(); } @Bean public static GlobalFilter getLogGlobalFilter() { return new LogGlobalFilter(); } @Bean public RateLimiter<?> getLocalMemoryLimiter() { return new LocalMemoryLimiter(); } @Bean(name = UriKeyResolver.BEAN_NAME) public KeyResolver getUriKeyResolver() { return new UriKeyResolver(); } }