微服务学习笔记九 Spring Cloud Config本地配置中心

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 微服务学习笔记九 Spring Cloud Config本地配置中心

Spring Cloud Config,通过服务端可以为多个客户端提供配置服务。

Spring Cloud Config可以将配置文件存储在本地,也可以将存储文件存储到远程

Git仓库。

创建Config Serve,通过它管理所有的配置文件。



**本地文件系统**

nativeconfigserver -> application  声明这是存放本地配置文件系统的模块,

具体的存放文件为:nativeconfigserver->configclient-dev.yml。

nativeconfigclient->bootstrap.yml获取configclient-dev.yml中的配置信息

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200716152444798.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTY5NjQz,size_16,color_FFFFFF,t_70)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200716152459218.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTY5NjQz,size_16,color_FFFFFF,t_70)

创建maven工程,pom.xml


```yaml

<dependencies>

   <dependency>

       <groupId>org.springframework.cloud</groupId>

       <artifactId>spring-cloud-config-server</artifactId>

       <version>2.0.2.RELEASE</version>

   </dependency>

</dependencies>

```


创建application.yml


```yaml

server:

 port: 8762

spring:

 application:

   name: nativeconfigserver

 profiles:

   active: native

 cloud:

   config:

     server:

       native:

         search-locations: classpath:/shared

```


注解说明:

profiles.active:表示的是文件的获取方式

cloud.config.server.native.search-location:本地配置文件存放的路径


resources路径下创建shared文件夹,并在此路径下创建configclient-dev.yml。


```yaml

server:

 port: 8070

foo: foo version 1

```


创建启动类


```java

package com.shuang;


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.config.server.EnableConfigServer;


@SpringBootApplication

@EnableConfigServer

public class NativeConfigServerApplication {

   public static void main(String[] args) {

       SpringApplication.run(NativeConfigServerApplication.class,args);

   }

}

```


注解说明:

@EnableConfigServer:声明配置中心

创建客户端,来读取本地配置中心的配置文件

创建maven工程,pom.xml


```yaml

<dependencies>

   <dependency>

       <groupId>org.springframework.cloud</groupId>

       <artifactId>spring-cloud-starter-config</artifactId>

       <version>2.0.2.RELEASE</version>

   </dependency>

</dependencies>

```


创建 bootstrap.yml,配置读取本地配置中心的相关信息。


```yaml

spring:

 application:

   name: configclient

 profiles:

   active: dev

 cloud:

   config:

     uri: http://localhost:8762

     fail-fast: true

```


注解说明;

cloud.config.uri:本地Config Server 的访问路径

cloud.config.fail-fast:设置客户端的优先判断Config Server获取是否正常。

通过 spring.application.name 结合 spring.profiles.active拼接目标配置

文件名,configclient-dev.yml,去Config Server 中查找该文件


创建客户端的启动类:


```java

package com.shuang;


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication

public class NativeConfigClientApplication {

   public static void main(String[] args) {

       SpringApplication.run(NativeConfigClientApplication.class,args);

     

   }

}

```


Handler


```java

package com.shuang.controller;


import org.springframework.beans.factory.annotation.Value;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;


@RestController

@RequestMapping ("/native")

public class NativeConfigHandler {


   @Value("${server.port}")

   private String port;


   @Value("${foo}")

   private String foo;


   @GetMapping("/index")

   public String index(){

       return this.port+"-"+this.foo;

   }

}

```

依次启动:

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200716152705432.png)

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200716152732747.png)

configclient通过读取configserver的文件,得知端口号为:8070

目录
相关文章
|
9天前
|
Java 开发者 微服务
手写模拟Spring Boot自动配置功能
【11月更文挑战第19天】随着微服务架构的兴起,Spring Boot作为一种快速开发框架,因其简化了Spring应用的初始搭建和开发过程,受到了广大开发者的青睐。自动配置作为Spring Boot的核心特性之一,大大减少了手动配置的工作量,提高了开发效率。
28 0
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
46 4
|
1月前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
38 0
|
26天前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
14天前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
40 9
|
15天前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
29 4
|
15天前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
36 3
|
15天前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
29 3
|
18天前
|
Java Spring
[Spring]aop的配置与使用
本文介绍了AOP(面向切面编程)的基本概念和核心思想。AOP是Spring框架的核心功能之一,通过动态代理在不修改原代码的情况下注入新功能。文章详细解释了连接点、切入点、通知、切面等关键概念,并列举了前置通知、后置通知、最终通知、异常通知和环绕通知五种通知类型。
29 1
|
1月前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
36 9
下一篇
无影云桌面