处理动态路由加载的问题

This commit is contained in:
zer0Black
2022-03-20 21:51:39 +08:00
parent 5ffdd20d01
commit 20b42262e7
3 changed files with 22 additions and 6 deletions
@@ -1,18 +1,37 @@
package com.jero; package com.jero;
import com.jero.loader.DynamicRouteLoader;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
import javax.annotation.Resource;
@EnableFeignClients @EnableFeignClients
@EnableDiscoveryClient @EnableDiscoveryClient
@SpringBootApplication @SpringBootApplication
public class JeroGatewayApplication { public class JeroGatewayApplication implements CommandLineRunner {
@Resource
private DynamicRouteLoader dynamicRouteLoader;
public static void main(String[] args) { public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(JeroGatewayApplication.class, args); ConfigurableApplicationContext applicationContext = SpringApplication.run(JeroGatewayApplication.class, args);
String userName = applicationContext.getEnvironment().getProperty("jero.test"); String userName = applicationContext.getEnvironment().getProperty("jero.test");
System.err.println("user name :" +userName); System.err.println("user name :" +userName);
} }
/**
* 容器初始化后加载路由
* @param strings
*/
@Override
public void run(String... strings) {
dynamicRouteLoader.refresh();
}
} }
@@ -1,6 +1,5 @@
package com.jero.loader; package com.jero.loader;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@@ -11,8 +10,6 @@ import com.alibaba.nacos.api.exception.NacosException;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.jero.common.constant.CacheConstant;
import org.jero.common.util.RedisUtil;
import com.jero.config.GatewayRoutersConfiguration; import com.jero.config.GatewayRoutersConfiguration;
import com.jero.config.RouterDataType; import com.jero.config.RouterDataType;
import org.springframework.cloud.gateway.event.RefreshRoutesEvent; import org.springframework.cloud.gateway.event.RefreshRoutesEvent;
+2 -2
View File
@@ -53,9 +53,9 @@
<module>jero-boot-starter</module> <module>jero-boot-starter</module>
<!-- 单体应用启动类 --> <!-- 单体应用启动类 -->
<module>jero-boot-single-startup</module> <module>jero-boot-single-startup</module>
<!-- 需要微服务,请打开注释吗,并刷新maven <!-- 需要微服务,请打开注释吗,并刷新maven -->
<module>jero-cloud-module</module> <module>jero-cloud-module</module>
-->
</modules> </modules>
<distributionManagement> <distributionManagement>