springcloud nacos命名空间的使用
在nacos中新建命名空间,名称为public2,id不用给,使用nacos自动分配给我们的
下面的public2的命名空间ID就是nacos自动分配的,不用给
然后在配置管理-配置列表-public2中新建配置
然后在配置管理-配置列表-public中新建配置
项目结构如下
以下是pom代码
<properties>
<spring.boot.version>2.4.2</spring.boot.version>
<spring.cloud.version> 2020.0.1</spring.cloud.version>
<spring.cloud.alibaba.version>2021.1</spring.cloud.alibaba.version>
</properties>
<dependencies>
<!--需要引入这个依赖,否则bootstrap.yml不加载-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</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>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
需要注意的是,spring-cloud-starter-bootstrap是必须的
bootstrap.yaml的代码如下
# nacos配置
server:
port: 8090
spring:
application:
name: example
cloud:
nacos:
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml
namespace: 4487d010-0fff-4ef8-bf91-c57e0b209919
discovery:
namespace: 4487d010-0fff-4ef8-bf91-c57e0b209919
在这里需要说明以下,nacos目前只支持 properties 和 yaml 类型。然后我这里统一使用了yaml格式的配置文件
启动类Application
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
System.out.println("*************************************");
System.out.println(Application.class.getSimpleName()+" run success ");
System.out.println("*************************************");
}
}
ConfigController代码如下
@RefreshScope
@RestController
public class ConfigController {
@Value("${useLocalCache}")
private String useLocalCache;
@RequestMapping("/get")
public String get() {
return useLocalCache;
}
}
启动项目,在地址栏输入localhost:8090/get
然后切换成public命名空间
# nacos配置
server:
port: 8090
spring:
application:
name: example
cloud:
nacos:
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml
再次刷新页面