您的位置:首页 > 编程语言 > Java开发

spring cloud相关知识汇总

2017-09-25 15:45 453 查看
目录
Spring cloud 教程...
1

1. 服务的注册与发现(Eureka)...
1

1.1 spring cloud简介...
1

1.2创建服务注册中心...
1

1.2.1pom依赖配置如下:...
1

1.2.2配置文件配置如下:...
3

1.2.3启动类...
3

1.2.4浏览器访问如下:...
4

2.Eureka客户端创建...
4

2.1pom配置...
4

2.2Eureka客户端 配置文件配置...
8

2.3 客户端启动类配置...
9

2.4Eureka客户端调用...
9

3.服务消费者Feign.
11

3.1 Feign简介...
11

3.2配置文件配置...
13

3.3 Feign启动类...
14

3.4Feign调用接口...
14

3.5前端controller代码...
14

4. spring cloud配置中心配置...
15

4.1简介...
15

4.2 pom文件配置...
15

4.3 配置文件配置...
18

4.4启动类...
19

5.configclient配置...
19

5.1 pom依赖配置...
19

5.2配置文件配置...
23

5.3启动类配置...
23

 

 

Spring cloud 教程

 

1. 服务的注册与发现(Eureka)

1.1 spring cloud简介

spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解,如果不了解的话可以看这篇文章:2小时学会springboot。另外对于“微服务架构”
不了解的话,可以通过搜索引擎搜索“微服务架构”了解下。

1.2创建服务注册中心

在这里,我们需要用的的组件上Spring Cloud Netflix的Eureka,eureka是一个服务注册和发现模块。

1.2.1pom依赖配置如下:

<project
xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 
 <groupId>com.test.springeureka</groupId>
 <artifactId>EurekaServer</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>
 
 <name>EurekaServer</name>
 <url>http://maven.apache.org</url>
 
 <properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
 </properties>
 
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.3.5.RELEASE</version>
      <relativePath/>
<!-- lookup parent from repository-->
   </parent>
 
<!--依赖管理,用于管理spring-cloud的依赖-->
   <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-parent</artifactId>
                <version>Brixton.SR3</version>  
<!--官网为Angel.SR4版本,但是我使用的时候总是报错-->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
   </dependencyManagement>
 
 <dependencies>
 <!-- eureka-server的starter -->
   <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka-server</artifactId>
   <version>1.1.7.RELEASE</version>
</dependency>
<!-- 权限配置 -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
</dependency>
 
 </dependencies>
 
 <build>
      <plugins>
        <!--使用该插件打包-->
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>
 <repositories>
      <repository>
         <id>spring-snapshots</id>
         <name>Spring Snapshots</name>
         <url>https://repo.spring.io/snapshot</url>
         <snapshots>
            <enabled>true</enabled>
         </snapshots>
      </repository>
      <repository>
         <id>spring-milestones</id>
         <name>Spring Milestones</name>
         <url>https://repo.spring.io/milestone</url>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </repository>
   </repositories>
</project>
 

1.2.2配置文件配置如下:

server.port=8888
eureka.instance.hostname=localhost
#是否将eureka自身作为应用注册到eureka注册中心,Eureka只作为Server端,所以不用向自身注册
eureka.client.registerWithEureka=false

eureka.client.fetchRegistry=false
 
#配置安全验证,用户名及密码,pom文件增加权限配置时需要用户名密码
security.basic.enabled=true
security.user.name=test
security.user.password=123456
 
#eureka的地址,多个eureka服务地址,可以用,号隔开
eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/

1.2.3启动类

@EnableEurekaServer        
//开启eureka服务
@SpringBootApplication     
//springBoot注解,spring在springBoot基础之上来构建项目
public
class
EurekaServiceApplication {
 
   public
static void
main(String[] args) {
       SpringApplication.run(EurekaServiceApplication.class, args);
   }
}
 

1.2.4浏览器访问如下:

如果配置了权限和用户名密码,则需要输入管理用户名和密码

2.Eureka客户端创建

2.1pom配置

<project
xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>
 <groupId>com.test.configclient</groupId>
 <artifactId>configClient</artifactId>
 <packaging>war</packaging>
 <version>0.0.1-SNAPSHOT</version>
 <name>configClient
Maven Webapp</name>
 <url>http://maven.apache.org</url>
 <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.3.3.RELEASE</version>
      <relativePath/>
<!-- lookup parent from repository-->
   </parent>
 
   <properties>
   <!--设置字符编码及java版本-->
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <java.version>1.8</java.version>
   </properties>
 
   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-actuator</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-config</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-test</artifactId>
         <scope>test</scope>
      </dependency>
     
      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-core</artifactId>
         <version>8.0.33</version>
      </dependency>
      <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-core</artifactId>
          <version>1.2.3</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>2.6.6</version>
      </dependency>
  
   <!-- springboot mybatis -->
      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>1.1.1</version>
      </dependency>
      <!-- mysql jdbc 连接驱动 -->
      <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.21</version>
      </dependency>
 
      <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-juli</artifactId>
          <version>8.0.35</version>
      </dependency>
      <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-jdbc</artifactId>
          <version>8.0.30</version>
      </dependency>
 
   <!-- servlet 依赖. --> 

    <dependency>
   <groupId>javax.servlet.jsp.jstl</groupId>
   <artifactId>javax.servlet.jsp.jstl-api</artifactId>
   <version>1.2.1</version>
</dependency>
   <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>jstl</artifactId>
      </dependency>
     
     
   <!-- Spring boot 映射到jsp需要此依赖 -->
      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-jasper</artifactId>
         <scope>provided</scope>
      </dependency>
     
       <!-- druid阿里巴巴数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.20</version>
        </dependency>
 
       <!--eureka 配置-->
     <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-eureka</artifactId>
     </dependency>
   </dependencies>
  
   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Brixton.RC2</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>
  
   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>
  
   <repositories>
      <repository>
         <id>spring-snapshots</id>
         <name>Spring Snapshots</name>
         <url>https://repo.spring.io/snapshot</url>
         <snapshots>
            <enabled>true</enabled>
         </snapshots>
      </repository>
      <repository>
         <id>spring-milestones</id>
         <name>Spring Milestones</name>
         <url>https://repo.spring.io/milestone</url>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </repository>
   </repositories>
  
</project>
 

2.2Eureka客户端配置文件配置

(1)applications.properties

#客户端端口
server.port=8081
#应用名字,该名字将注册到eureka注册中心
spring.application.name=config-client
#获取的服务端配置文件名称前缀
spring.cloud.config.name=server-config
#获取的服务端文件后缀例子:service-config-beta.properties
spring.cloud.config.profile=beta
 
#mybatis 整合 xml配置方式,ps:注解方式sql不需要下面2个配置
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
 
(2) bootstrap.properties
#启动需要用bootstrap文件配置spring.cloud.config.uri
#服务端url
spring.cloud.config.uri=http://localhost:8080
#注册中心
#服务注册的Eureka Server地址,EurekaServer application.properties
中配置
eureka.client.serviceUrl.defaultZone=http://test:123456@localhost:8888/eureka
#实例名称显示IP配置如下:
eureka.instance.preferIpAddress=true
#自定义应用实例id
#eureka.instance.instanceId=${spring.application.name}:${spring.application.instance_id:${server.port}}
#健康检查
eureka.client.healthcheck.enabled=true
 

2.3 客户端启动类配置

@EnableDiscoveryClient           
//通过该注解,实现服务发现,注册
@SpringBootApplication
@MapperScan("com.test.configclient.mapper")//配置扫描mapper包,或者在mapper类上配置@Mapper亦可
public
class
ConfigClientApplication {
 
   public
static void
main(String[] args) {
      newSpringApplicationBuilder(ConfigClientApplication.class).web(true).run(args);
   }
}

2.4Eureka客户端调用

/**
 * 如果你的应用使用@EnableEurekaClient注解,那么只能使用eureka来发现服务实例。
 * @author Administrator
 *
 */
@RequestMapping("/eurekaClient")
@RestController
public
class
EurekaTestController {
    //Eureka客户端
   @Autowired
   privateEurekaClient
eurekaClient;
   
   //服务发现客户端
   @Autowired
   privateDiscoveryClient
discoveryClient;
       
   /**
     * 获得Eureka instance的信息,传入Application
NAME
     *
     * */
   @RequestMapping("/eurekaInstance")
   publicString serviceUrl(){
        InstanceInfo instance = this.eurekaClient.getNextServerFromEureka("CONFIG-CLIENT",false);
        return instance.getHomePageUrl();
   }
 
   /**
     * 本地服务实例信息
     * */
   @RequestMapping("/instanceInfo")
   publicServiceInstance showInfo(){
        ServiceInstance localServiceInstance = this.discoveryClient.getLocalServiceInstance();
        return localServiceInstance;
   }
}

打开浏览器访问如下:

 

3.服务消费者Feign

3.1 Feign简介

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign
注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。

简而言之:
Feign 采用的是基于接口的注解
Feign 整合了ribbon
3.2新建feign maven工程,添加pom依赖

<project
xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.test.springeureka</groupId>
 <artifactId>SpringCloudWeb</artifactId>
 <packaging>war</packaging>
 <version>0.0.1-SNAPSHOT</version>
 <name>SpringCloudWeb
Maven Webapp</name>
 <url>http://maven.apache.org</url>
  
  
  <properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
 </properties>
 
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.3.5.RELEASE</version>
      <relativePath/>
<!-- lookup parent from repository-->
   </parent>
 
<!--依赖管理,用于管理spring-cloud的依赖-->
   <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-parent</artifactId>
                <version>Brixton.SR3</version>  
<!--官网为Angel.SR4版本,但是我使用的时候总是报错-->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
   </dependencyManagement>
  
   <dependencies>
    <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
  
       <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-starter-eureka</artifactId>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-test</artifactId>
           <scope>test</scope>
       </dependency>
       <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-feign</artifactId>
          <version>2.0.0.M2</version>
      </dependency>
       <!-- jsp-->
       <dependency>
           <groupId>org.apache.tomcat.embed</groupId>
           <artifactId>tomcat-embed-jasper</artifactId>
           <version>7.0.59</version>
      </dependency>
   </dependencies>
 
 <build>
      <plugins>
        <!--使用该插件打包-->
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration> 

                    <source>${java.version}</source> 

                    <target>${java.version}</target> 

                    <encoding>${file.encoding}</encoding> 

                </configuration>

         </plugin>
        
      </plugins>
   </build>
 <repositories>
      <repository>
         <id>spring-snapshots</id>
         <name>Spring Snapshots</name>
         <url>https://repo.spring.io/snapshot</url>
         <snapshots>
            <enabled>true</enabled>
         </snapshots>
      </repository>
      <repository>
         <id>spring-milestones</id>
         <name>Spring Milestones</name>
         <url>https://repo.spring.io/milestone</url>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </repository>
   </repositories>
</project>
 

3.2配置文件配置

 
#项目上下文路径
server.context-path=/
spring.application.name=spring-cloud-consumer
server.port=9001
eureka.client.serviceUrl.defaultZone=http://test:123456@localhost:8888/eureka
 
#SpringMvc
#jsp页面路径前缀
spring.mvc.view.prefix= /WEB-INF/jsp/
#jsp页面路径后缀
spring.mvc.view.suffix= .jsp
 
 
 

3.3 Feign启动类

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
//启用feign进行远程调用
public
class
ConsumerApplication {
 
   publicstaticvoidmain(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
   }
 
}

 

3.4Feign调用接口

@FeignClient(name=
"config-client")//调用config-client的服务
public
interface
LoginRemote {
 
   @RequestMapping(value =
"/login")
   publicString login(@RequestParam(value="username")String uname,@RequestParam(value="password")Stringpass);
}

 

3.5前端controller代码

/**
 * login
 * @author Administrator
 *
 */
@RequestMapping(value="/",produces=
"text/plain;charset=UTF-8")
@RestController
public
class
LoginController {
  
   private
static
Logger log = Logger.getLogger(LoginController.class) ;
  
   @Autowired
   LoginRemoteloginRemote;
  
   @RequestMapping(value="/login",method=RequestMethod.GET)
   public ModelAndViewloginPage(){
      ModelAndViewm = newModelAndView("login");
      return m;
   }
  
   @RequestMapping(value="/login",method=RequestMethod.POST)
   publicModelAndView login(String username,String password,HttpServletRequest request){
      String result = loginRemote.login(username,password);
      log.info("result:"+result);
     
      request.setAttribute("result",result);
      ModelAndView m = new ModelAndView("loginResult");
      return m;
   }
}

 

 

 

4. spring cloud配置中心配置

4.1简介

在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config
,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config组件中,分两个角色,一是config
server,二是config client。

 

4.2 pom文件配置

<project
xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.test.ulenp</groupId>
 <artifactId>ConfigServer2</artifactId>
 <packaging>war</packaging>
 <version>0.0.1-SNAPSHOT</version>
 <name>ConfigServer2
Maven Webapp</name>
 <url>http://maven.apache.org</url>
 
 <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.3.3.RELEASE</version>
      <relativePath/>
<!-- lookup parent from repository-->
   </parent>
 
 
 <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Brixton.RC2</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>
  
 
 <dependencies>
   <!-- web项目依赖 -->
      <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
  
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-config-server</artifactId>
      </dependency>
     
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
      <!-- 集成,应用管理和监控 -->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-actuator</artifactId>
      </dependency>

      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>2.6.6</version>
      </dependency>
      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-core</artifactId>
         <version>8.0.33</version>
      </dependency>
      <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-core</artifactId>
          <version>1.2.3</version>
      </dependency>
      <!-- svn 获取配置的配置 -->
        <!--configserver need read
svn--> 
        <dependency> 

            <groupId>org.tmatesoft.svnkit</groupId> 

            <artifactId>svnkit</artifactId> 

            <version>1.7.8</version> 

        </dependency> 

 <dependency>
   <groupId>org.antlr</groupId>
   <artifactId>antlr-runtime</artifactId>
   <version>3.3</version>
</dependency>
 
 <!--eureka 配置-->
     <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-eureka</artifactId>
     </dependency>
 
     
 </dependencies>
   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>
 
  <repositories>
      <repository>
         <id>spring-snapshots</id>
         <name>Spring Snapshots</name>
         <url>https://repo.spring.io/snapshot</url>
         <snapshots>
            <enabled>true</enabled>
         </snapshots>
      </repository>
      <repository>
         <id>spring-milestones</id>
         <name>Spring Milestones</name>
         <url>https://repo.spring.io/milestone</url>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </repository>
   </repositories>
 
</project>
 

 

4.3 配置文件配置

#spring cloud 配置中心配置
#端口号
server.port=8080
#应用名字,该名字将注册到eureka注册中心
spring.application.name=config-server
#本地配置中心配置
spring.profiles.active=native
#本地配置中心,物理路径
spring.cloud.config.server.native.searchLocations=file:D:\\ConfigPro
#------------------
#svn配置中心配置
#spring.profiles.active=subversion
#spring.cloud.config.server.svn.uri=http://svn.tomshopping.com/shanghai/postmall/youxnp.ule.com/vi/trunk/youxnp.ViewItemWeb/src/main/conf/beta
#spring.cloud.config.server.svn.username=zhanglei
#spring.cloud.config.enabled=true
#spring.cloud.config.server.svn.password=123456
#spring.cloud.config.server.default-label:config 

 
#服务注册的Eureka Server地址,EurekaServer application.properties
中配置
eureka.client.serviceUrl.defaultZone=http://test:123456@localhost:8888/eureka

4.4启动类

@EnableDiscoveryClient           
//通过该注解,实现服务发现,注册
@SpringBootApplication  
//sprin boot 快速启动类
@EnableConfigServer  
//配置中心配置
public
class
ConfigServerApplication {
 
   public
static void
main(String[] args) {
      newSpringApplicationBuilder(ConfigServerApplication.class).web(true).run(args);
   }
}
 

5.configclient配置

5.1 pom依赖配置

<project
xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.test.configclient</groupId>
 <artifactId>configClient</artifactId>
 <packaging>war</packaging>
 <version>0.0.1-SNAPSHOT</version>
 <name>configClient
Maven Webapp</name>
 <url>http://maven.apache.org</url>
 <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.3.3.RELEASE</version>
      <relativePath/>
<!-- lookup parent from repository-->
   </parent>
 
   <properties>
   <!--设置字符编码及java版本-->
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <java.version>1.8</java.version>
   </properties>
 
   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-actuator</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-config</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-test</artifactId>
         <scope>test</scope>
      </dependency>
     
      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-core</artifactId>
         <version>8.0.33</version>
      </dependency>
      <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-core</artifactId>
          <version>1.2.3</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>2.6.6</version>
      </dependency>
  
   <!-- springboot mybatis -->
      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>1.1.1</version>
      </dependency>
      <!-- mysql jdbc 连接驱动 -->
      <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.21</version>
      </dependency>
 
      <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-juli</artifactId>
          <version>8.0.35</version>
      </dependency>
      <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-jdbc</artifactId>
          <version>8.0.30</version>
      </dependency>
 
   <!-- servlet 依赖. --> 

    <dependency>
   <groupId>javax.servlet.jsp.jstl</groupId>
   <artifactId>javax.servlet.jsp.jstl-api</artifactId>
   <version>1.2.1</version>
</dependency>
   <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>jstl</artifactId>
      </dependency>
     
     
   <!-- Spring boot 映射到jsp需要此依赖 -->
      <dependency>
         <groupId>org.apache.tomcat.embed</groupId>
         <artifactId>tomcat-embed-jasper</artifactId>
         <scope>provided</scope>
      </dependency>
     
       <!-- druid阿里巴巴数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.20</version>
        </dependency>
 
       <!--eureka 配置-->
     <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-eureka</artifactId>
     </dependency>
   </dependencies>
  
   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Brixton.RC2</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>
  
   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>
  
   <repositories>
      <repository>
         <id>spring-snapshots</id>
         <name>Spring Snapshots</name>
         <url>https://repo.spring.io/snapshot</url>
         <snapshots>
            <enabled>true</enabled>
         </snapshots>
      </repository>
      <repository>
         <id>spring-milestones</id>
         <name>Spring Milestones</name>
         <url>https://repo.spring.io/milestone</url>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </repository>
   </repositories>
  
</project>
 

5.2配置文件配置

#客户端端口
server.port=8081
#应用名字,该名字将注册到eureka注册中心
spring.application.name=config-client
#获取的服务端配置文件名称前缀
spring.cloud.config.name=server-config
#获取的服务端文件后缀例子:service-config-beta.properties
spring.cloud.config.profile=beta
 

5.3启动类配置

@EnableDiscoveryClient           
//通过该注解,实现服务发现,注册
@SpringBootApplication
@MapperScan("com.test.configclient.mapper")//配置扫描mapper包,或者在mapper类上配置@Mapper亦可
public
class
ConfigClientApplication {
 
   public
static void
main(String[] args) {
      newSpringApplicationBuilder(ConfigClientApplication.class).web(true).run(args);
   }
}
 

6. spring cloud 图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: