# 配置中心
可以使用Nacos或者Apollo作为分布式配置中心,其配置优先级最高。
回忆
在配置文件章节中配置信息的生效顺序:
分布式配置中心 > 启动参数 > Jvm 系统属性 > 环境变量 > jboot-xxx.properties > jboot.properties
# Nacos配置
# 启动Nacos服务
可参考Nacos官方文档快速开始 (opens new window)文档启动一个Nacos服务。
启动成功后,访问http://127.0.0.1:8848/nacos (opens new window)可进入Nacos控制台
# 配置文件
在配置文件jboot.properties中配置:
#--------jboot nacos 分布式配置中心 start--------
jboot.config.nacos.enable = true
jboot.config.nacos.serverAddr = 127.0.0.1:8848
jboot.config.nacos.dataId = demo
jboot.config.nacos.group = dev
#--------jboot nacos 分布式配置中心 end--------
1
2
3
4
5
6
2
3
4
5
6
更多配置:
jboot.config.nacos.isUseCloudNamespaceParsing = xxx
jboot.config.nacos.isUseEndpointParsingRule = xxx
jboot.config.nacos.endpoint = xxx
jboot.config.nacos.endpointPort = xxx
jboot.config.nacos.namespace = xxx
jboot.config.nacos.username = xxx
jboot.config.nacos.password = xxx
jboot.config.nacos.accessKey = xxx
jboot.config.nacos.secretKey = xxx
jboot.config.nacos.ramRoleName = xxx
jboot.config.nacos.serverAddr = xxx
jboot.config.nacos.contextPath = xxx
jboot.config.nacos.clusterName = xxx
jboot.config.nacos.encode = xxx
jboot.config.nacos.configLongPollTimeout = xxx
jboot.config.nacos.configRetryTime = xxx
jboot.config.nacos.maxRetry = xxx
jboot.config.nacos.enableRemoteSyncConfig = xxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 示例
修改IndexController
内容如下:
package cc.jweb.demo.index.controller;
import cc.jweb.boot.Jweb;
import cc.jweb.boot.app.JwebApplication;
import cc.jweb.boot.controller.JwebController;
import io.jboot.aop.annotation.ConfigValue;
import io.jboot.web.controller.annotation.RequestMapping;
@RequestMapping(value = "/", viewPath = "")
public class IndexController extends JwebController {
@ConfigValue("undertow.port")
int port;
public static void main(String[] args) {
JwebApplication.main(args);
}
public void index() {
String configValue = Jweb.configValue("demo.value");
setAttr("port", port);
setAttr("configValue", configValue);
render("/WEB-INF/views/index.html");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
修改src/main/webapp/WEB-INF/views/index.html
的内容为:
<h1>Hello World Index.html #(port)</h1>
<h1>demo.value = #(configValue)</h1>
1
2
2
修改完成后,启动工程。浏览页面:http://localhost:8080 (opens new window)
然后在Nacos控制台添加DataId为demo,Group为dev的配置文件:
点击发布后,本地工程的配置信息就实时被修改为分布式配置中心的配置值了。
注意
配置实时生效范围?
虽然分布式配置中心的配置会实时修改配置信息,通过Jweb.configValue({paramName})
可以获取到最新的值,但有些组件在初始化时使用了一些旧配置值的将无法实时生效!除非重新初始化组件。
# Appollo配置
# 启动Appollo服务
请参考Appollo快速开始文档 (opens new window)开启服务
# 配置文件
在 jboot.properties 添加如下配置
jboot.config.apollo.enable = true
jboot.config.apollo.appId = SampleApp
jboot.config.apollo.meta = http://localhost:8080
1
2
3
2
3
引用
本节引用了Jboot的配置文档,更多详细可以前往 这里 (opens new window)。