# 配置中心

可以使用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

更多配置:

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

# 示例

修改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

修改src/main/webapp/WEB-INF/views/index.html的内容为:

<h1>Hello World Index.html #(port)</h1>
<h1>demo.value =  #(configValue)</h1>
1
2

修改完成后,启动工程。浏览页面:http://localhost:8080 (opens new window)

nacos_demo_index1

然后在Nacos控制台添加DataId为demo,Group为dev的配置文件:

nacos_demo_config

点击发布后,本地工程的配置信息就实时被修改为分布式配置中心的配置值了。

nacos_demo_index2

注意

配置实时生效范围?
虽然分布式配置中心的配置会实时修改配置信息,通过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

引用

本节引用了Jboot的配置文档,更多详细可以前往 这里 (opens new window)