spring cloud学习笔记(一):配置服务器搭建

文章参考来源: lzhou666的 http://www.cnblogs.com/skyblog/p/5129603.html

要使用spring cloud分布式配置文件总体上分为3个大的步骤:

1.首选你需要创建存放配置文件的git仓库。

2.创建一个配置文件服务器,该服务器将配置文件信息转化为rest接口数据对外提供。

3.创建一个demo应用项目,该项目演示使用配置文件服务器。

具体步骤

  1)创建配置文件存放仓库

  Spring cloud使用git或svn存放配置文件,默认情况下使用git,因此你需要安装git私服或者直接使用互联网上的github或者git.oschina,这里推荐使用git.oschina。本文示例使用的是git.oschina,创建好git工程后,在此工程再创建两个文件夹test和prop来存放配置文件。然后创建两个配置文件。如下:
  
这里写图片描述
  

说明: 这两个文件夹分别存放测试和正式环境的配置信息,供demo项目使用。
  2)创建配置文件服务器
    配置文件仓库创建好了后,就需要创建配置管理服务器,该服务器只是将配置文件转换为rest接口对外提供服务,不做其它用途。这个服务器的功能也是spring cloud提供的,所以我们只需要引入相关jar包,稍微设置一下即可。
    1.创建该服务应用,你需要首选创建一个空的maven工程:

这里写图片描述

    2.修改pom文件的引用,添加springCloud的继承引用和config Server服务包的引用。
<!--  1.引入springCloud starter parent包的继承-->
  <parent>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-parent</artifactId>
    <version>Brixton.RELEASE</version>
    <relativePath />
  </parent>

  <groupId>com.vx.springCloud</groupId>
  <artifactId>configServer</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>configServer</name>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <!-- 2. 引入configserver服务包-->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
  </dependencies>
3.在项目application.yml中添加配置服务器的链接信息
server:
  #config配置服务一般设置端口8888
  port: 8888

spring:
  application:
    name: configServer
  cloud:
    #git服务配置信息
    config:
      server:
        git:
          uri: https://git.oschina.net/aofavx/conf.git
          #从以下文件夹下下面查找配置文件
          search-paths: dev*,test*

其中server.port是配置当前web应用绑定8888端口,git.uri指定配置文件所在的git工程路径,searchPaths表示将搜索这些文件夹下的配置文件。

4.修改App.java文件,设置启动类和congfigServer注解。
/**
 * 系统配置服务器服务项目
 */
@SpringBootApplication
//设置当前项目为配置文件服务器
@EnableConfigServer
public class App 
{
    public static void main( String[] args ){
        SpringApplication.run(App.class,args);
    }
}
5. 启动服务成功,其他项目就可以通过配置服务器拿到配置信息了。
  3)创建Demo项目使用配置服务
1.创建Demo项目,同样先创建一个普通的maven工程:

这里写图片描述

2.引入springcloud config的clientjar包
  <!--  1.引入springCloud parent包的继承-->
  <parent>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-parent</artifactId>
    <version>Brixton.RELEASE</version>
    <relativePath />
  </parent>


  <dependencies>
    <!-- 2. 引入configserver服务包-->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-config-client</artifactId>
    </dependency>
  </dependencies>
3.设置指向配置服务器的config信息
server:
  port: 8080

spring:
  application:
    name: configDemo
  profiles:
    #选择使用下面哪个配置项
    active: service1
   #服务配置信息
  cloud:
    config:
      #此处的config.profile会根据生效的active设置对应的值
      profile: ${config.profile}
      name: helloword
      uri: http://localhost:8888

#将不同的配置组以---分割,并通过spring.profiles定义每组的名字,方便后续引用
---
spring:
  profiles: service1
config:
  profile: test

---
spring:
  profiles: service2
config:
  profile: dev

说明:获取git上的资源信息遵循如下规则:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

application:表示应用名称,在配置文件中通过spring.config.name配置,如果不配置这使用spring.application.name值
profile:表示获取指定环境下配置,例如开发环境、测试环境、生产环境 默认值default,实际开发中可以是 dev、test、demo、production等
label: git标签,默认值master

4.注入需要使用的配置项
@RestController
@SpringBootApplication
public class App 
{
    //冒号后面代表:如果没设置参数,就取冒号后面的值作为默认值
    @Value("${message: Hello Word}")
    String msg;

    @ResponseBody
    @RequestMapping(value = "/")
    String home() {
        return "获取的参数值:"+msg;
    }

    public static void main( String[] args ){
        SpringApplication.run(App.class,args);
    }
}
5.启动项目
此时启动项目时,demo项目发送获取配置信息的请求给configServer服务。

这里写图片描述

configServer服务会从git上根据请求的资源文件规则下载对应文件,存储到本地缓存,并将配置信息返回给Demo项目。

6.测试
在浏览器中输入:http://localhost:8080/ 回车。

这里写图片描述

说明配置服务器和Demo中配置的引用都OK。

修改Demo项目端口为8081,通过maven打成Jar。运行jar命令:

java -Dspring.profiles.active=service2 -jar configDemo-1.0-SNAPSHOT.jar

此时再在浏览器从查看8081端口的Demo项目。运行也OK。
这里写图片描述

配置服务器的好处看到了吧,只需要一个profiles.active 就可以使用不同的配置了! *_*

展开阅读全文

没有更多推荐了,返回首页