diff --git a/app.platform/build.gradle b/app.platform/build.gradle index 8b8c9052..f841c3a2 100644 --- a/app.platform/build.gradle +++ b/app.platform/build.gradle @@ -53,6 +53,8 @@ dependencies { // 风险预警分析 //project(":wra.report"), //project(":wra.report.frontend"), + + project(":io.sc.platform.springcloud.openfeign"), ) } diff --git a/gradle.properties b/gradle.properties index 8606b0ed..593dc12f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -90,9 +90,11 @@ reflections_version=0.10.2 schemacrawler_version=16.21.4 shadow_gradle_plugin_version=8.3.1 spring_boot_version=2.7.18 +spring_cloud_version=2021.0.8 spring_cloud_alibaba_version=2021.0.4.0 spring_cloud_context_version=3.1.4 -spring_cloud_version=2021.0.8 +spring_cloud_openfeign_version=3.1.9 +spring_cloud_loadbalancer_version=3.1.9 spring_security_oauth2_authorization_server_version=0.4.5 spring_statemachine_version=3.2.1 truelicense_version=4.0.3 diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/springboot/BeforeEnvironmentProcessor.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/springboot/BeforeEnvironmentProcessor.java index ae1d89fe..e69e606f 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/springboot/BeforeEnvironmentProcessor.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/springboot/BeforeEnvironmentProcessor.java @@ -123,11 +123,12 @@ public class BeforeEnvironmentProcessor implements EnvironmentPostProcessor, Ord } // 从启动命令行参数获取----------------------------------------------------------------------- - // 通过在启动应用的命令上加上 --xxxxxxxxxxx.home.dir=xxx/xxxx/xxx/ + // 通过在启动应用的命令上加上 --XXX_XXXX_XXXX_HOME_DIR=xxx/xxxx/xxx/ // ----------- - // 表示应用的启动类所在包的全路径名称,例如: app.platform + // 表示应用的启动类所在包的全路径名称,例如: APP_PLATFORM String packageName =Environment.getInstance().getApplicationName(); - homeDir =environment.getProperty(packageName + ".home.dir"); + String envVarKey =packageName.toUpperCase().replace('.','_') + "_HOME_DIR"; + homeDir =environment.getProperty(envVarKey); if(StringUtils.hasText(homeDir)){ return homeDir; } diff --git a/io.sc.platform.springcloud.openfeign/build.gradle b/io.sc.platform.springcloud.openfeign/build.gradle new file mode 100644 index 00000000..00871f40 --- /dev/null +++ b/io.sc.platform.springcloud.openfeign/build.gradle @@ -0,0 +1,6 @@ +dependencies { + api( + "org.springframework.cloud:spring-cloud-starter-openfeign:${spring_cloud_openfeign_version}", + "org.springframework.cloud:spring-cloud-starter-loadbalancer:${spring_cloud_loadbalancer_version}", + ) +} diff --git a/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/autoconfigure/OpenFeignAutoConfiguration.java b/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/autoconfigure/OpenFeignAutoConfiguration.java new file mode 100644 index 00000000..7fe33687 --- /dev/null +++ b/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/autoconfigure/OpenFeignAutoConfiguration.java @@ -0,0 +1,15 @@ +package io.sc.platform.springcloud.openfeign.autoconfigure; + +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Configuration; + +/** + * Openfeign 自动配置, 为平台提供微服务间调用能力. + * + * @author wangshaoping, wspsc@163.com + */ +@Configuration(proxyBeanMethods = false) +@EnableFeignClients(basePackages = "io.sc.platform.springcloud.openfeign.example") +public class OpenFeignAutoConfiguration { + +} diff --git a/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/example/Sample.java b/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/example/Sample.java new file mode 100644 index 00000000..35d198de --- /dev/null +++ b/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/example/Sample.java @@ -0,0 +1,14 @@ +package io.sc.platform.springcloud.openfeign.example; + +import org.bouncycastle.util.Store; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient("openfeignSample") +public interface Sample { + @RequestMapping(name = "user", value = "/api/system/user", method = RequestMethod.GET) + public List getUsers(); +} diff --git a/io.sc.platform.springcloud.openfeign/src/main/resources/META-INF/spring.factories b/io.sc.platform.springcloud.openfeign/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..ed27f303 --- /dev/null +++ b/io.sc.platform.springcloud.openfeign/src/main/resources/META-INF/spring.factories @@ -0,0 +1,3 @@ +# Auto Configuration +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +io.sc.platform.springcloud.openfeign.autoconfigure.OpenFeignAutoConfiguration \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 2f3f6875..91516937 100755 --- a/settings.gradle +++ b/settings.gradle @@ -72,6 +72,7 @@ include ':io.sc.platform.scheduler.manager.frontend' include ':io.sc.platform.security' include ':io.sc.platform.security.loginform' include ':io.sc.platform.springcloud.nacos' +include ':io.sc.platform.springcloud.openfeign' include ':io.sc.platform.springcloud.sentinel' include ':io.sc.platform.system' include ':io.sc.platform.system.api'