SpringCloud Finchley+Spring Boot 2.0 통합 컨설팅 방법 예제(1.2 버 전)

10521 단어 SpringBoot집성Consul
개요:
Spring Boot 2.0 은 이전 버 전에 비해 변화 가 크다.먼저 jdk 버 전에 대한 요 구 는 1.8 보다 낮 을 수 없 으 며,그 다음으로 의존 하 는 spring 버 전도 최신 버 전 5.0 이 며,기능 이 강 한 webflux 등 을 통합 했다.
SpringCloud Finchley 버 전의 업그레이드 도 새로운 구성 요 소 를 가 져 왔 다.Spring Cloud Function 과 Spring Cloud Gateway 는 전 자 는 함수 식 프로 그래 밍 모듈 의 통합 에 주력 하고 후 자 는 게 이 트 웨 이 넷 플 릭 스 zuul 의 교체 구성 요소 이다.
1)필요 한 의존:

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

 <groupId>com.iyb</groupId>
 <artifactId>saturn</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>

 <name>sc-saturn</name>
 <description>sc-saturn for Spring Boot</description>

 <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.0.1.RELEASE</version>
 </parent>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
  <mapper.version>3.4.0</mapper.version>
  <pagehelper.version>4.1.6</pagehelper.version>
  <fastjson.version>1.2.13</fastjson.version>
  <jackson.version>2.8.5</jackson.version>
  <druid.version>1.0.27</druid.version>
  <mysql.version>5.1.40</mysql.version>
  <commons-fileupload.version>1.3.1</commons-fileupload.version>
 </properties>


 <dependencies>

  <!--starter begin-->
  <!--spring cloud starter-->

  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-consul-discovery</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-config</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-openfeign</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
  </dependency>
   <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-sleuth</artifactId>
  </dependency>


  <!--tomcat starter-->
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
  </dependency>
  <dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
   <scope>compile</scope>
  </dependency>
   <!--actuator starter-->
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>


  <!--spring boot starter-->
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter</artifactId>
  </dependency>

  <!--spring starter-->
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jdbc</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-aop</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

  <!--fastjon-->
  <dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>${fastjson.version}</version>
  </dependency>

  <dependency>
   <groupId>io.github.openfeign</groupId>
   <artifactId>feign-gson</artifactId>
   <version>9.3.1</version>
  </dependency>

  <!--lombok-->
  <dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
  </dependency>

  <dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.17</version>
  </dependency>


  <dependency>
   <groupId>commons-beanutils</groupId>
   <artifactId>commons-beanutils</artifactId>
  </dependency>
  <dependency>
   <groupId>commons-collections</groupId>
   <artifactId>commons-collections</artifactId>
  </dependency>
  <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-lang3</artifactId>
   <version>3.4</version>
  </dependency>
  <dependency>
   <groupId>com.netflix.feign</groupId>
   <artifactId>feign-gson</artifactId>
   <version>8.15.1</version>
  </dependency>

 </dependencies>



 // Spring Cloud Finchley.RELEASE
 <dependencyManagement>
  <dependencies>
   <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Finchley.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
   </dependency>
  </dependencies>
 </dependencyManagement>

</project>
주의해 야 할 점:
부분 의존 이 바 뀌 었 습 니 다.
구 판본
Finchley 버 전
spring-cloud-starter-eureka-client
spring-cloud-starter-netflix-eureka-client
spring-cloud-starter-eureka-server
spring-cloud-starter-netflix-eureka-server
spring-cloud-starter-hystrix
spring-cloud-starter-netflix-hystrix
spring-cloud-starter-hystrix-dashboard
spring-cloud-starter-netflix-hystrix-dashboard
spring-cloud-starter-ribbon
spring-cloud-starter-netflix-ribbon
spring-cloud-starter-turbine
spring-cloud-starter-netflix-turbine
spring-cloud-starter-zuul
spring-cloud-starter-netflix-zuul
spring-cloud-starter-feign
spring-cloud-starter-openfeign
새 버 전의 SpringCloud 위의 의존 도 는 모두 변화 가 생 겼 습 니 다.의존 도 는 모두 넷 플 릭 스 를 도 입 했 습 니 다.아마도 성명 을 위 한 것 일 것 입 니 다.(구성 요소 의 실현 바 텀 은 spring 이 아 닙 니 다)
log4j 의존:
spring cloud 이전 버 전에 서 로 그 는 lombok 만 도입 하면 되 지만 Finchley 버 전 은 따로 참조 해 야 합 니 다.

<!--lombok-->
  <dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
  </dependency>

  <dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.17</version>
  </dependency>
2)통합 consul 프로필:

spring:
 application:
 name: sc-saturn
 profiles:
 active: dev

 cloud:
 config:
#  uri: http://localhost:9999
  discovery:
  enabled: false
  serviceId: sc-earth-config-server
  label: master
  profile: pre
 consul:
  host: http://localhost:8500
  port: 80
  discovery:
   prefer-ip-address: true
   #          endPoint,    /health,               ,   http 200     
   health-check-path: /ok/health
   heartbeat:
   enabled: false
3)시작 클래스:

@SpringBootApplication
@EnableFeignClients
@EnableZuulServer
@ComponentScan(basePackages={"com.iyb.ak"})
@EnableDiscoveryClient
@Slf4j
public class SaturnApplication implements CommandLineRunner{

 public static void main(String[] args) {
  SpringApplication.run(SaturnApplication.class, args);
 }


 @Override
 public void run(String... args) throws Exception {
  log.info(">>>>>>>>>>>>>>> sc-saturn     <<<<<<<<<<<<<");
 }
}
4)예시:

등록 센터:
 
sc-saturn 이 consul 에 성공 적 으로 등록 한 것 을 볼 수 있 습 니 다.또한 위의 consul ui 인터페이스 에 변화 가 생 겼 습 니 다.이것 은 1.2 버 전의 최적화 입 니 다.예전 의 ui 인터페이스 에 비해 많이 예 뻐 졌 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기