springCloudconfig本地配置操作
⼀般很多项⽬不是在springcloud的环境中使⽤的,但是需要⽤到分布式配置中⼼来管理⼀些外部或者项⽬的配置,这个时候我们可以使⽤springcloud-config的本地配置。
配置config-server服务端
使⽤创建⼀个springcloud⼯程,pom中引⼊:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
启动类加上@EnableConfigServer注解:
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
在resources⽂件夹下创建properties⽂件夹,在properties⽂件夹下创建config-dev.properties⽂件存放配置信息。
修改配置⽂件application.properties:
#项⽬启动端⼝
server.port=8888
#配置⽂件在本地
spring.profiles.active=native
#配置⽂件地址
fig.server.native.search-locations=classpath:properties
关于配置⽂件的命名请参考这⾥,配置⽂件的名称和路径会分别代表不同的配置名称和配置激活属性:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
配置属性
看到上⾯的信息则说明配置成功,这⾥我配置了⼀个项⽬的端⼝号:server.port,后⾯会⽤到。
配置 config-client客户端
新建springboot⼯程,pom⽂件中加⼊:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
在resources⽂件下加⼊配置⽂件bootstrap.properties,配置使⽤config-server的配置:
fig.name=config
fig.profile=dev
fig.uri=localhost:8888
在这⾥我们可以看到fig.name和fig.profile是和config-server中的config-dev.properties配置⽂件名字对应的。
启动项⽬:我们可以看到配置的端⼝号8001⽣效了:
这⾥有个⼩坑我记⼀下,springcloud config读取git配置⽂件的时候,properties⽂件会出现中⽂乱码的情况,所有我使⽤的是yml⽂件,不会出现乱码的问题。⽹上搜了⼀下,有⼈说是spring加载Properties⽂件的 load⽅法输⼊流的编码是 ISO 8859-1。所以我避免⿇烦使⽤yml⽂件。
git配置⽅法:
server:
port: 8888
spring:
cloud:
config:
server:
git:
username: xxx
password: xxx
补充知识:spring cloud config 本地配置和远程GIT部署公共配置获取
引⾔
在我们开发spring boot微服务框架时,经常会⽤到各种各样的配置,⽽这些配置在我们没有采⽤整体项⽬管理或者产品管理下,显得很混乱,尤其是⼀些公共的配置,加上我们微服务模块化,⽐如说要修改⼀个库配置,或许要修改到各个模块去整体调配,增加⼯作量的同时,对⼯作完全是⼀⽆是处的.
为此,对服务配置⽂件进⾏整体管理是必不可少的.然 ---spring cloud config在微服务架构下,应⽤⽽
⽣,当然它的作⽤不⽌是这个⼤.
部署
服务端
1.既然是服务型的框架,那么它必然会有⼀个Server和⼀个Client来实现简单的⽰例.和其他springboot或者cloud的⼀样,我们既然要在项⽬中应⽤它,必是要导⼊或者引⼊包.官⽹明确给出了maven和gradle的配置语句.⽬前我在⽹上看的很多⽰例都加⼊了⼀些他们⾃⼰项⽬的东西,⽐如说eureka或者是amqp-消息配置或者⼀些负载均衡的包或者是配置可热加载的包.这些信息涉及到更深的技术,之后慢慢理解,我们在这就只做cloud config的实现.
新建Server项⽬==>maven配置刷包==>编辑Applaction加注解;springboot中文
@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServerApplication.class, args);
}
}
2.Server⼯程的配置可以是yml或者properties,⾃⼰按照⾃⼰的喜好.我这⾥⽤了yml;配置有标注,
2.1. 远程GIT配置⽅法
2.2. 本地配置⽅法
server:
port: 7001 #Server端⼝,client访问端⼝端⼝默认8888
spring:
profiles:
active: native #告诉服务,我现在要启⽤本地配置(优先考虑采⽤⼯程⽬录resources下配置)
application:
name: config-server #名称
cloud:
config:
server:
native:
search-locations: E:/Document/cloud_config/properties/ #明确采⽤该⽬录下配置
3.养成看看原代码的习惯,⼤部分看不懂逻辑,没有切⼊点,哈哈!不过还是能看出来点端倪.
3.⼀个configServer搞完,现在把它运⾏起来,似乎发现了它的运⾏原理.通过⽇志看代码.
不难看除,原代码原来是这个样⼦,⼊⼝有了,更加⽅便查看源代码的原理.看⽅法⼊参,似乎我们客户端需要提供者⼏个字段的配置.name
客户端
1.和服务端⽅式相同,接下来客户端依旧是导包,加注解.接下来客户端的配置需要在l的配置.
1.1 我这⾥配置⽐较简单,只要Server requestmapping认识就⾏,当然不同的配置对不同的项⽬使⽤更便利,⾃⾏研究吧,官⽹有⼀些配置的样例,⼤家可以看看.⽹上的⼀些例⼦可能久远,包含没有所有,也可以看原代码的类.来查看怎么配置,如何去查配置⽂件的.
EnvironmentController
1.2 怎么让⼀个项⽬访问⼏个或者公共配置,这⾥我们只要将fig.name字段属性配置⽤逗号隔开写不同的⽂件名即可,也是其他很多博客说是⽤spring.application.name,这种⽅法是错误的,不要采⽤.还有⼀种⽅法是我们什么也不做,只要在配置⽂件⽬录加⼀个application.properties的⽂件,既可以每个微服务都默认访问.
2.我们再来看看原代码,了解⼀些配置和逻辑,这个配置就不会迷茫,也不会出现冗余的配置.
3.运⾏起来.
远程配置读起来.
本地配置读起来.
以上这篇springCloud config本地配置操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。