工程名 | 作用 | 端口 |
---|---|---|
config-server | config的配置服务端 | 配置了8080dev, 8082prd |
config-client | 为了测试调用的demo | 8889 |
eureka-provider | 实际项目演练的工程 | 配置了8080dev, 8082prd |
eureka-server | eureka 的服务注册中心 | 8761 |
github.com/xueshuiyy/s…
github.com/xueshuiyy/s…
我的git上的路径:
<!-- 引入spring cloud 的config依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> 复制代码
<!-- 依赖管理 --> <!-- spring-cloud-version 在properties里配置: <spring-cloud-version>Greenwich.SR1</spring-cloud-version> --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud-version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 复制代码
<parent> <groupId>lin.springcloud</groupId> <artifactId>spring-cloud-config-lin</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> 复制代码
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> 复制代码
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer; @SpringBootApplication @EnableConfigServer public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } } 复制代码
server.port: 8888 # 配置git仓库地址 spring.cloud.config.server.git.uri=https://github.com/xueshuiyy/spring-cloud-config-center.git # 配置仓库路径,下图圈红的就是这个文件夹名 spring.cloud.config.server.git.search-paths=clientconfig # 配置仓库的分支 spring.cloud.config.label=master # 访问git仓库的用户名 spring.cloud.config.server.git.username=xueshuiyy # 访问git仓库的用户密码 如果Git仓库为公开仓库,可以不填写用户名和密码,如果是私有仓库需要填写 spring.cloud.config.server.git.password= 复制代码
由于父工程已经配置了 spring-cloud-starter-config 的依赖了,所以Client就不需要在配置了。只是需要用rest测试一下,所以引入web的依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 复制代码
做一个bootstrap.yml(properties)的文件,application.properties文件就可写可不写了,bootstrap 的配置文件会覆盖掉application的配置文件。联想到双亲委派机制(向上委托,向下加载),bootstrap-> extend -> app
server.port=8889 # 和git里的文件名对应,下图的圈红 spring.application.name=config-client # 远程仓库的分支 spring.cloud.config.label=master # dev 开发环境配置文件 | test 测试环境 | pro 正式环境 # 和git里的文件名对应,我们可以配置多个文件来区分不同环境的配置 spring.cloud.config.profile=dat # 指明配置服务中心的网址 spring.cloud.config.uri= http://localhost:8888/ 复制代码
/{application}/{profile}[/{label}] http://localhost:8888/config-client/dev
/{application}-{profile}.yml /{application}-{profile}.properties http://localhost:8888/config-client-dev.properties
/{label}/{application}-{profile}.properties /{label}/{application}-{profile}.yml http://localhost:8888/master/config-client-dev.properties
证明配置服务中心可以从远程程序获取配置信息。
http://localhost:8889/hi
这样配置完毕后,启动的端口也完全由 client的配置文件 bootstrap.xml 配置的环境来决定了