Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Kwan的解忧杂货铺@新空间代码工作室
SpringCloudAlibaba
提交
c641f54f
S
SpringCloudAlibaba
项目概览
Kwan的解忧杂货铺@新空间代码工作室
/
SpringCloudAlibaba
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SpringCloudAlibaba
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
c641f54f
编写于
2月 16, 2023
作者:
Kwan的解忧杂货铺@新空间代码工作室
🐭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix:网关服务
上级
c64081ad
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
88 addition
and
418 deletion
+88
-418
nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/controller/ConsumerUserController.java
...springcloudalibaba/controller/ConsumerUserController.java
+20
-0
nacos-server-consumer/src/main/resources/bootstrap.yml
nacos-server-consumer/src/main/resources/bootstrap.yml
+2
-5
nacos-server-gateway/pom.xml
nacos-server-gateway/pom.xml
+14
-52
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/GatewayApplication.java
.../java/com/kwan/springcloudalibaba/GatewayApplication.java
+0
-25
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/constant/RespConstant.java
...va/com/kwan/springcloudalibaba/constant/RespConstant.java
+0
-6
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/controller/FlowLimitController.java
...an/springcloudalibaba/controller/FlowLimitController.java
+0
-120
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/controller/LocalController.java
...m/kwan/springcloudalibaba/controller/LocalController.java
+0
-52
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/controller/SentinelController.java
...wan/springcloudalibaba/controller/SentinelController.java
+0
-70
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/handler/UrlBlockHandler.java
.../com/kwan/springcloudalibaba/handler/UrlBlockHandler.java
+0
-47
nacos-server-gateway/src/main/resources/bootstrap.yml
nacos-server-gateway/src/main/resources/bootstrap.yml
+37
-19
nacos-server-gateway/src/test/java/com/kwan/springcloudalibaba/SentinelConsumerApplicationTests.java
.../springcloudalibaba/SentinelConsumerApplicationTests.java
+0
-13
pom.xml
pom.xml
+15
-9
未找到文件。
nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/controller/ConsumerUserController.java
浏览文件 @
c641f54f
...
...
@@ -120,9 +120,29 @@ public class ConsumerUserController {
/**
* 获取配置的变量
* <p>
* http://127.0.0.1:8085/nacos/consumer/nameInfo
*/
@GetMapping
(
value
=
"/nameInfo"
,
produces
=
MediaType
.
APPLICATION_PROBLEM_JSON_VALUE
)
public
Result
nameInfo
()
{
return
Result
.
ok
();
}
/**
* http://127.0.0.1:8085/nacos/consumer/test
*/
@GetMapping
(
value
=
"/test"
,
produces
=
MediaType
.
APPLICATION_PROBLEM_JSON_VALUE
)
public
Result
test
()
{
return
Result
.
ok
();
}
/**
* 获取配置的变量
*/
@GetMapping
(
value
=
"/index"
,
produces
=
MediaType
.
APPLICATION_PROBLEM_JSON_VALUE
)
public
Result
index
()
{
return
Result
.
ok
();
}
}
\ No newline at end of file
nacos-server-consumer/src/main/resources/bootstrap.yml
浏览文件 @
c641f54f
...
...
@@ -16,8 +16,5 @@ spring:
server-addr
:
http://120.79.36.53:8848
#配置中心地址
file-extension
:
yaml
#文件类型
group
:
DEV_GROUP
#组别
namespace
:
e750dcd5-657b-489b-8d15-b7b71aa3e984
#命名空间
refresh-enabled
:
true
#默认自动刷新
namespace
:
4cd9bd32-8f25-45cd-b919-df1a0df146e0
#命名空间
refresh-enabled
:
true
#默认自动刷新
\ No newline at end of file
nacos-server-gateway/pom.xml
浏览文件 @
c641f54f
...
...
@@ -14,74 +14,36 @@
<description>
nacos-server-gateway
</description>
<dependencies>
<dependency>
<groupId>
com.kwan.springcloudalibaba
</groupId>
<artifactId>
nacos-server-feign-api
</artifactId>
<version>
1.0.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
<artifactId>
spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-discovery
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-config
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.csp
</groupId>
<artifactId>
sentinel-core
</artifactId>
</dependency>
<!-- 客户端需要引入 Transport 模块来与 Sentinel 控制台进行通信-->
<dependency>
<groupId>
com.alibaba.csp
</groupId>
<artifactId>
sentinel-transport-simple-http
</artifactId>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-gateway
</artifactId>
<version>
2.1.5.RELEASE
</version>
</dependency>
<!--sentinel启动器-->
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-sentinel
</artifactId>
</dependency>
<!--sentinel持久化存储-->
<dependency>
<groupId>
com.alibaba.csp
</groupId>
<artifactId>
sentinel-datasource-nacos
</artifactId>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
<version>
2.0.0.RELEASE
</version>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-netflix-ribbon
</artifactId>
<version>
2.0.0.RELEASE
</version>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
com.alibaba.csp
</groupId>
<artifactId>
s
entinel-spring-webmvc-adapter
</artifactId>
<
version>
1.8.2
</version
>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
s
pring-boot-starter-test
</artifactId>
<
scope>
test
</scope
>
</dependency>
</dependencies>
...
...
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/GatewayApplication.java
浏览文件 @
c641f54f
package
com.kwan.springcloudalibaba
;
import
com.alibaba.cloud.nacos.ribbon.NacosRule
;
import
com.netflix.loadbalancer.IPing
;
import
com.netflix.loadbalancer.IRule
;
import
com.netflix.loadbalancer.PingUrl
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.context.annotation.Bean
;
/**
* http://localhost:18088/sentinel/nameInfo
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/1/17 12:37
*/
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public
class
GatewayApplication
{
@Bean
public
IRule
randomRule
()
{
return
new
NacosRule
();
//nacos的策略
}
@Bean
public
IPing
iping
()
{
return
new
PingUrl
();
}
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
GatewayApplication
.
class
,
args
);
System
.
out
.
println
(
"-------------------------------网关服务启动成功-------------------------------"
);
...
...
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/constant/RespConstant.java
已删除
100644 → 0
浏览文件 @
c64081ad
package
com.kwan.springcloudalibaba.constant
;
public
class
RespConstant
{
public
static
final
Integer
RESP_CODE_FLOW_LIMITING_EXCEPTION
=
441
;
public
static
final
String
RESP_MSG_FLOW_LIMITING_EXCEPTION
=
"流量控制"
;
}
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/controller/FlowLimitController.java
已删除
100644 → 0
浏览文件 @
c64081ad
package
com.kwan.springcloudalibaba.controller
;
import
com.alibaba.csp.sentinel.annotation.SentinelResource
;
import
com.alibaba.csp.sentinel.slots.block.BlockException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.concurrent.TimeUnit
;
/**
* 限流测试
* http://localhost:18088/sentinel/nameInfo
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/2/2 17:13
*/
@Slf4j
@RestController
@RequestMapping
(
"/flowLimit"
)
public
class
FlowLimitController
{
/**
* http://127.0.0.1:8086/flowLimit/testA
*/
@GetMapping
(
"/testA"
)
public
String
testA
()
{
System
.
out
.
println
(
"------ testA ------"
);
return
"------testA"
;
}
@GetMapping
(
"/testB"
)
public
String
testB
()
{
try
{
TimeUnit
.
SECONDS
.
sleep
(
3
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
System
.
out
.
println
(
"------ testB ------"
);
return
"------testB"
;
}
@GetMapping
(
"/testC"
)
public
String
testC
()
{
try
{
int
a
=
1
/
0
;
System
.
out
.
println
(
"------ testC ------"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
"------testC"
;
}
@GetMapping
(
"/testD"
)
public
String
testD
()
{
try
{
TimeUnit
.
SECONDS
.
sleep
(
1
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
return
"------testD"
;
}
@SentinelResource
@GetMapping
(
"/testE"
)
public
String
testDD
()
{
try
{
TimeUnit
.
SECONDS
.
sleep
(
100
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
return
"------testE"
;
}
/**
* 热点规则
*
* @param p1
* @param p2
* @return
*/
@GetMapping
(
"/testHotKey"
)
@SentinelResource
(
value
=
"testHotKey"
)
public
String
testHotKey
(
@RequestParam
(
value
=
"p1"
,
required
=
false
)
String
p1
,
@RequestParam
(
value
=
"p2"
,
required
=
false
)
String
p2
)
{
return
"------testHotKey"
;
}
@GetMapping
(
"/testHotKey2"
)
@SentinelResource
(
value
=
"testHotKey2"
,
blockHandler
=
"dealHandler_testHotKey"
)
public
String
testHotKey2
(
@RequestParam
(
value
=
"p1"
,
required
=
false
)
String
p1
,
@RequestParam
(
value
=
"p2"
,
required
=
false
)
String
p2
)
{
log
.
info
(
"testE 热点参数"
);
return
"------testHotKey2"
;
}
/**
* 自定义异常
*
* @param p1
* @param p2
* @param exception
* @return
*/
public
String
dealHandler_testHotKey
(
String
p1
,
String
p2
,
BlockException
exception
)
{
// 默认 Blocked by Sentinel (flow limiting)
return
"-----dealHandler_testHotKey"
;
}
@GetMapping
(
"/persistent"
)
public
String
persistent
()
{
log
.
info
(
"persistent 测试持久化"
);
return
"------persistent 测试持久化"
;
}
}
\ No newline at end of file
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/controller/LocalController.java
已删除
100644 → 0
浏览文件 @
c64081ad
package
com.kwan.springcloudalibaba.controller
;
import
com.alibaba.csp.sentinel.Entry
;
import
com.alibaba.csp.sentinel.SphU
;
import
com.alibaba.csp.sentinel.slots.block.BlockException
;
import
com.alibaba.csp.sentinel.slots.block.RuleConstant
;
import
com.alibaba.csp.sentinel.slots.block.flow.FlowRule
;
import
com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.List
;
@RestController
public
class
LocalController
{
public
static
void
main
(
String
[]
args
)
{
initFlowRules
();
while
(
true
)
{
Entry
entry
=
null
;
try
{
entry
=
SphU
.
entry
(
"HelloWorld"
);
/*您的业务逻辑 - 开始*/
System
.
out
.
println
(
"hello world"
);
/*您的业务逻辑 - 结束*/
}
catch
(
BlockException
e1
)
{
/*流控逻辑处理 - 开始*/
System
.
out
.
println
(
"block!"
);
/*流控逻辑处理 - 结束*/
}
finally
{
if
(
entry
!=
null
)
{
entry
.
exit
();
}
}
}
}
/**
* 资源 HelloWorld 每秒最多只能通过 20 个请求。
*/
private
static
void
initFlowRules
()
{
List
<
FlowRule
>
rules
=
new
ArrayList
<>();
FlowRule
rule
=
new
FlowRule
();
rule
.
setResource
(
"HelloWorld"
);
rule
.
setGrade
(
RuleConstant
.
FLOW_GRADE_QPS
);
// Set limit QPS to 20.
rule
.
setCount
(
1
);
rules
.
add
(
rule
);
FlowRuleManager
.
loadRules
(
rules
);
}
}
\ No newline at end of file
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/controller/SentinelController.java
已删除
100644 → 0
浏览文件 @
c64081ad
package
com.kwan.springcloudalibaba.controller
;
import
com.alibaba.csp.sentinel.annotation.SentinelResource
;
import
com.alibaba.csp.sentinel.slots.block.BlockException
;
import
com.kwan.springcloudalibaba.api.FeignUserService
;
import
com.kwan.springcloudalibaba.common.Result
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* http://localhost:18088/sentinel/nameInfo
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/2/2 17:13
*/
@RestController
@RequestMapping
(
"/sentinel"
)
public
class
SentinelController
{
@Autowired
private
FeignUserService
feignUserService
;
/**
* feign调用
* http://127.0.0.1:8085/nacos/consumer/1
* <p>
* http://localhost:9091/user/1
*
* @param id
* @return
*/
@GetMapping
(
value
=
"/{id}"
,
produces
=
MediaType
.
APPLICATION_PROBLEM_JSON_VALUE
)
public
Result
getUserById
(
@PathVariable
Integer
id
)
{
return
Result
.
ok
(
feignUserService
.
selectOne
(
id
));
}
/**
* 获取配置的变量
* http://localhost:8086/sentinel/nameInfo
*/
@GetMapping
(
value
=
"/nameInfo"
,
produces
=
MediaType
.
APPLICATION_PROBLEM_JSON_VALUE
)
public
Result
nameInfo
()
{
return
Result
.
ok
();
}
/**
* http://localhost:8086/sentinel/world
*
* @return
*/
@GetMapping
(
"/world"
)
@SentinelResource
(
value
=
"helloWorld"
,
blockHandler
=
"helloBlock"
)
public
String
helloWorld
()
{
return
"Hello world"
;
}
/**
* 回调地址
*
* @param e
* @return
*/
public
String
helloBlock
(
BlockException
e
)
{
return
"你已被流控"
;
}
}
\ No newline at end of file
nacos-server-gateway/src/main/java/com/kwan/springcloudalibaba/handler/UrlBlockHandler.java
已删除
100644 → 0
浏览文件 @
c64081ad
package
com.kwan.springcloudalibaba.handler
;
import
com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler
;
import
com.alibaba.csp.sentinel.slots.block.BlockException
;
import
com.alibaba.csp.sentinel.slots.block.authority.AuthorityException
;
import
com.alibaba.csp.sentinel.slots.block.degrade.DegradeException
;
import
com.alibaba.csp.sentinel.slots.block.flow.FlowException
;
import
com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowException
;
import
com.alibaba.csp.sentinel.slots.system.SystemBlockException
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.kwan.springcloudalibaba.common.Result
;
import
org.springframework.stereotype.Component
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
@Component
public
class
UrlBlockHandler
implements
BlockExceptionHandler
{
@Override
public
void
handle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
BlockException
e
)
throws
Exception
{
String
msg
=
null
;
if
(
e
instanceof
FlowException
)
{
//限流异常
msg
=
"接口已被限流"
;
}
else
if
(
e
instanceof
DegradeException
)
{
//熔断异常
msg
=
"接口已被熔断,请稍后再试"
;
}
else
if
(
e
instanceof
ParamFlowException
)
{
//热点参数限流
msg
=
"热点参数限流"
;
}
else
if
(
e
instanceof
SystemBlockException
)
{
//系统规则异常
msg
=
"系统规则(负载不满足要求)"
;
}
else
if
(
e
instanceof
AuthorityException
)
{
//授权规则异常
msg
=
"授权规则不通过"
;
}
httpServletResponse
.
setStatus
(
500
);
httpServletResponse
.
setCharacterEncoding
(
"UTF-8"
);
httpServletResponse
.
setContentType
(
"application/json;charset=utf-8"
);
//ObjectMapper是内置Jackson的序列化工具类,这用于将对象转为JSON字符串
ObjectMapper
mapper
=
new
ObjectMapper
();
//某个对象属性为null时不进行序列化输出
mapper
.
setSerializationInclusion
(
JsonInclude
.
Include
.
NON_NULL
);
mapper
.
writeValue
(
httpServletResponse
.
getWriter
(),
Result
.
error
(
300
,
msg
)
);
}
}
\ No newline at end of file
nacos-server-gateway/src/main/resources/bootstrap.yml
浏览文件 @
c641f54f
#端口号
server
:
port
:
8088
port
:
8089
management
:
endpoint
:
health
:
show-details
:
always
endpoints
:
jmx
:
exposure
:
include
:
'
*'
web
:
exposure
:
include
:
'
*'
health
:
sentinel
:
enabled
:
false
#spring配置
spring
:
application
:
name
:
nacos-server-
sentinel-consumer
name
:
nacos-server-
gateway
profiles
:
active
:
dev
cloud
:
gateway
:
enabled
:
true
#开启网关
discovery
:
locator
:
enabled
:
true
#启用DiscoveryClient
routes
:
-
id
:
route1
uri
:
lb://nacos-server-consumer
predicates
:
-
Path=/nacos/consumer/test,/nacos/consumer/index
-
id
:
route2
uri
:
lb://nacos-server-producer
predicates
:
-
Path=/service/**
filter
:
-
AddRequestHeader=X-Request-Id,12345
nacos
:
discovery
:
server-addr
:
http://120.79.36.53:8848
#服务注册地址
config
:
server-addr
:
http://120.79.36.53:8848
#配置中心地址
file-extension
:
yaml
#文件类型
group
:
DEV_GROUP
#组别
namespace
:
4cd9bd32-8f25-45cd-b919-df1a0df146e0
#命名空间
refresh-enabled
:
true
#默认自动刷新
username
:
nacos
password
:
nacos
sentinel
:
transport
:
dashboard
:
127.0.0.1:8181
port
:
8719
#默认端口,如果被占用则从8719依次+1扫描
datasource
:
ds1
:
nacos
:
server-addr
:
http://120.79.36.53:8848
username
:
nacos
password
:
nacos
dataId
:
nacos-server-sentinel-consumer
# 微服务名称
groupId
:
DEFAULT_GROUP
data-type
:
json
rule-type
:
flow
# 流控规则
\ No newline at end of file
port
:
8719
#默认端口,如果被占用则从8719依次+1扫描
\ No newline at end of file
nacos-server-gateway/src/test/java/com/kwan/springcloudalibaba/SentinelConsumerApplicationTests.java
已删除
100644 → 0
浏览文件 @
c64081ad
package
com.kwan.springcloudalibaba
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
class
SentinelConsumerApplicationTests
{
@Test
void
contextLoads
()
{
}
}
pom.xml
浏览文件 @
c641f54f
...
...
@@ -15,8 +15,8 @@
<java.version>
1.8
</java.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
<spring-boot.version>
2.
3.7
.RELEASE
</spring-boot.version>
<spring-cloud-alibaba.version>
2.2.
2
.RELEASE
</spring-cloud-alibaba.version>
<spring-boot.version>
2.
2.5
.RELEASE
</spring-boot.version>
<spring-cloud-alibaba.version>
2.2.
1
.RELEASE
</spring-cloud-alibaba.version>
</properties>
<modules>
...
...
@@ -45,14 +45,20 @@
<version>
${spring-boot.version}
</version>
<type>
pom
</type>
<scope>
import
</scope>
<exclusions>
<exclusion>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-dependencies
</artifactId>
<version>
Hoxton.SR3
</version>
<type>
pom
</type>
<scope>
import
</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-dependencies</artifactId>-->
<!-- <version>Hoxton.SR3</version>-->
<!-- <type>pom</type>-->
<!-- <scope>import</scope>-->
<!-- </dependency>-->
<dependency>
<groupId>
com.netflix.archaius
</groupId>
<artifactId>
archaius-core
</artifactId>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录