springcloud整合config組件

  • 2021 年 10 月 17 日
  • 筆記

config組件

config組件支持兩種配置文件獲取方式
springcould搭建的微服務的配置文件的獲取方式有兩種。它支持配置服務放在配置服務的內存中(即本地),也支持放在遠程Git倉庫中或者本地數據源。在spring cloud config 組件中,分兩個角色,一是config server,二是config client。

server端搭建步驟:

POM:

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>

需要註冊到註冊中心
application.yml
server:
port: 8877

spring:
application:
name: cloud-config
cloud:
config:
server:
git:
uri: [email protected]:in__cong/test-config.git #git上的地址
search-paths:
- testConfig #倉庫的包名
default-label: master #分支名
eureka:
instance:
#以IP地址註冊到服務中心,相互註冊使用IP地址
preferIpAddress: true
instance-id: cloud-config
client:
serviceUrl:
defaultZone: //localhost:8761/eureka/
然後是啟動類:
@EnableEurekaClient
@SpringBootApplication
@EnableConfigServer
public class config8877Application {

public static void main(String[] args) {
SpringApplication.run(config8877Application.class);
}
}
注意: 使用開啟註解
環境就搭建好了 訪問地址:

IP地址端口號+分支名稱+文件名
注意文件名的格式: application-dev.yml

客戶端:
POM:
<dependencies>
<!--config客戶端起步依賴-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!--eureka客戶端依賴-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--微服務的監控依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--熱部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
配置文件:bootstrap.yml

server:
port: 9966

spring:
application:
name: config-client1
cloud:
config:
label: master #分支名
name: application #要拉取的文件名
profile: dev #那個環境的文件
uri: //localhost:8877 #服務端的IP地址和端口

eureka:
instance:
instance-id: config-client1 #z在eureka註冊中心上顯示的名字
prefer-ip-address: true #在eureka上顯示IP地址
client:
service-url:
defaultZone: //eureka-server1:8761/eureka/
啟動類:

@SpringBootApplication
@EnableEurekaClient
public class ConfigClient9966Application {

public static void main(String[] args) {

SpringApplication.run(ConfigClient9966Application.class,args);
}
}

測試: controller
@RestController
@RequestMapping("/config")
public class ConfigDemoController {

@Value("${wei.xin}")
private String info;
@GetMapping("/demo")
public String getGitConfiguration(){

return info;
}
}
注意:wei.xin 這個值是我們Git上的文件配置的值:訪問接口我們就拉取到git上的value值了

簡單的配置句到這裡吧