在上一篇,我们讲解了,怎么在Windows系统中启动一个nacos。我们就使用这个nacos来作为配置中心
一:新增一个配置
步骤:配置列表->点击“+号”新增->
我们可以看到,在创建的时候,设置dataId\Group等,还要选择配置格式。
在配置格式中,我们可以看到很多我们熟悉的类型。这里我们就选择YAML类型的
演示数据:
dtatId:domain
group:DEFAULT_GROUP
配置格式:YAML
如下图:
这样,我们就配置好了。
二:spring boot继承Nacos
2.1:创建maven项目省略
2.2:maven添加:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- spring boot启动类的-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<!-- 解决没有激活profile的-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- nacos-config -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.7</version>
</dependency>
</dependencies>
2.3:配置文件添加nacos相关配置:
server.port=8011
spring.application.name=/springboot-nacos
server.servlet.session.timeout= 10
#server.session.timeout=10
server.tomcat.uri-encoding=UTF-8
# nacos
nacos.config.server-addr=127.0.0.1:8848
主要是nacos.config.server-addr地址
2.4:在启动类添加nacos的支持及添加对nacos监听加载方法
@NacosPropertySource(dataId = "domain", autoRefreshed = true, type = ConfigType.YAML)
说明:其中的dtatId就是刚才咱们配置的。设置自动刷新为true.设置文件类型为YAML
nacos监听方法:
/**
* 监听Nacos加载
*
* @param config
*/
@NacosConfigListener(dataId = "domain", type = ConfigType.YAML)
public void onMessage(String config) {
System.out.println(config);
}
完整如下图:
扩展:
dataId也可以配置在配置文件中。如下:
nacos:
config:
server-addr: localhost:8848 data-id: IAM
2.5:编写测试类:
import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
/**
* @author kaigejava
*/
@Controller
@RequestMapping("config")
public class NacosConfigController {
private boolean useLocalCache;
@NacosValue(value = "${domain-url}", autoRefreshed = true)
private String serverName;
@NacosValue(value = "${useLocalCache}", autoRefreshed = true)
public void setUseLocalCache(boolean useLocalCache) {
this.useLocalCache = useLocalCache;
}
@RequestMapping(value = "/get", method = GET)
@ResponseBody
public boolean get() {
return useLocalCache;
}
@RequestMapping(value = "/getString", method = GET)
@ResponseBody
public String getString(){
return serverName;
}
}
测试方法写完之后,启动项目进行访问:
我们可以看到,已经读取到配置文件里面的信息了。
需要注意:
使用的是
@NacosValue(value = "${domain-url}", autoRefreshed = true)
示例代码已提交:https://gitee.com/kaigejava/kaigejavastudy