spring cloud相关知识汇总

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zl386119974/article/details/78085938

目录

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 NetflixEureka,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-serverstarter -->

   <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注解,springspringBoot基础之上来构建项目

public classEurekaServiceApplication {

 

   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 classConfigClientApplication {

 

   public static void main(String[] args) {

      newSpringApplicationBuilder(ConfigClientApplication.class).web(true).run(args);

   }

}

2.4Eureka客户端调用

/**

 * 如果你的应用使用@EnableEurekaClient注解,那么只能使用eureka来发现服务实例。

 * @author Administrator

 *

 */

@RequestMapping("/eurekaClient")

@RestController

public classEurekaTestController {

    //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 classConsumerApplication {

 

   publicstaticvoidmain(String[] args) {

        SpringApplication.run(ConsumerApplication.class, args);

   }

 

}

3.4Feign调用接口

@FeignClient(name= "config-client")//调用config-client的服务

public interfaceLoginRemote {

 

   @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 classLoginController {

  

   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 classConfigServerApplication {

 

   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 classConfigClientApplication {

 

   public static void main(String[] args) {

      newSpringApplicationBuilder(ConfigClientApplication.class).web(true).run(args);

   }

}

6. spring cloud 图

猜你喜欢

转载自blog.csdn.net/zl386119974/article/details/78085938