123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package org.jeecg.config;
- import lombok.extern.slf4j.Slf4j;
- import org.jeecg.handler.HystrixFallbackHandler;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.http.MediaType;
- import org.springframework.web.reactive.function.server.RequestPredicates;
- import org.springframework.web.reactive.function.server.RouterFunction;
- import org.springframework.web.reactive.function.server.RouterFunctions;
- import org.springframework.web.reactive.function.server.ServerResponse;
- import javax.annotation.Resource;
- import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
- import static org.springframework.web.reactive.function.server.RouterFunctions.route;
- import static org.springframework.web.reactive.function.server.ServerResponse.ok;
- /**
- * @author scott
- * @date 2020/05/26
- * 路由配置信息
- */
- @Slf4j
- @Configuration
- public class GatewayRoutersConfiguration {
- public static final long DEFAULT_TIMEOUT = 30000;
- public static String SERVER_ADDR;
- public static String NAMESPACE;
- public static String DATA_ID;
- public static String ROUTE_GROUP;
- public static String USERNAME;
- public static String PASSWORD;
- /**
- * 路由配置文件数据获取方式yml,nacos,database
- */
- public static String DATA_TYPE;
- @Value("${spring.cloud.nacos.discovery.server-addr}")
- public void setServerAddr(String serverAddr) {
- SERVER_ADDR = serverAddr;
- }
- @Value("${spring.cloud.nacos.discovery.namespace}")
- public void setNamespace(String namespace) {
- NAMESPACE = namespace;
- }
- @Value("${jeecg.route.config.data-id:#{null}}")
- public void setRouteDataId(String dataId) {
- DATA_ID = dataId + ".json";
- }
- @Value("${jeecg.route.config.group:DEFAULT_GROUP:#{null}}")
- public void setRouteGroup(String routeGroup) {
- ROUTE_GROUP = routeGroup;
- }
- @Value("${jeecg.route.config.data-type}")
- public void setDataType(String dataType) { DATA_TYPE = dataType; }
- @Value("${spring.cloud.nacos.config.username}")
- public void setUsername(String username) {
- USERNAME = username;
- }
- @Value("${spring.cloud.nacos.config.password}")
- public void setPassword(String password) {
- PASSWORD = password;
- }
- /**
- * 路由断言
- * @return
- */
- @Bean
- public RouterFunction routerFunction() {
- return RouterFunctions.route(
- RequestPredicates.path("/globalFallback").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)), hystrixFallbackHandler);
- }
- /**
- * 映射接口文档默认地址(通过9999端口直接访问)
- * @param indexHtml
- * @return
- */
- @Bean
- public RouterFunction<ServerResponse> indexRouter(@Value("classpath:/META-INF/resources/doc.html") final org.springframework.core.io.Resource indexHtml) {
- return route(GET("/"), request -> ok().contentType(MediaType.TEXT_HTML).syncBody(indexHtml));
- }
- @Resource
- private HystrixFallbackHandler hystrixFallbackHandler;
- }
|