最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解利用SpringCloud搭建一個(gè)最簡單的微服務(wù)框架

 更新時(shí)間:2017年11月13日 11:15:57   作者:程序猿DD  
這篇文章主要介紹了詳解利用SpringCloud搭建一個(gè)最簡單的微服務(wù)框架,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

Spring Cloud是一個(gè)基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開發(fā)工具,它為基于JVM的云應(yīng)用開發(fā)中的配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會(huì)話和集群狀態(tài)管理等操作提供了一種簡單的開發(fā)方式。

Spring Cloud包含了多個(gè)子項(xiàng)目(針對分布式系統(tǒng)中涉及的多個(gè)不同開源產(chǎn)品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等項(xiàng)目。

1.微服務(wù)

微服務(wù)主要包含服務(wù)注冊,服務(wù)發(fā)現(xiàn),服務(wù)路由,服務(wù)配置,服務(wù)熔斷,服務(wù)降級等一系列的服務(wù),而Spring Cloud為我們提供了個(gè)一整套的服務(wù);

本例子為你提供了最簡單的一個(gè)服務(wù)發(fā)現(xiàn)例子,包含服務(wù)注冊發(fā)現(xiàn)spingCloudEurekaServer、服務(wù)配置中心spingCloudConfServer、以及一個(gè)app應(yīng)用springCloudApp

2.服務(wù)注冊與發(fā)現(xiàn)

spingCloudEurekaServer

pom.xml

<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.caicongyang</groupId> 
 <artifactId>spingCloudEurekaServer</artifactId> 
 <version>0.0.1-SNAPSHOT</version> 
 <parent> 
  <groupId>org.springframework.cloud</groupId> 
  <artifactId>spring-cloud-starter-parent</artifactId> 
  <version>Angel.SR6</version> 
 </parent> 
 <dependencies>   
  <dependency> 
   <groupId>org.springframework.cloud</groupId> 
   <artifactId>spring-cloud-starter-eureka-server</artifactId> 
  </dependency> 
 </dependencies> 
 <build> 
  <plugins> 
   <plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
   </plugin> 
  </plugins> 
 </build> 
</project> 

Application.java

package com.caicongyang.eureka; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 
 
/** 
 * Spring could EurekaServer程序主入口 
 * 
 * @author Administrator 
 * 
 */ 
@SpringBootApplication 
@EnableEurekaServer 
public class Application { 
 public static void main(String[] args) { 
  SpringApplication.run(Application.class, args); 
 } 
} 

application.yml  (可用properties替代)

server: 
  port: 9999 
eureka: 
  instance: 
   hostname: 127.0.0.1 
  client: 
   registerWithEureka: false 
   fetchRegistry: false 
   serviceUrl: 
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 

3.服務(wù)配置(全局配置中心)

pom.xml

<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.caicongyang</groupId> 
 <artifactId>spingCloudConfServer</artifactId> 
 <version>0.0.1-SNAPSHOT</version> 
 
 <parent> 
  <groupId>org.springframework.cloud</groupId> 
  <artifactId>spring-cloud-starter-parent</artifactId> 
  <version>Angel.SR6</version> 
 </parent> 
 <dependencies> 
  <dependency> 
   <groupId>org.springframework.cloud</groupId> 
   <artifactId>spring-cloud-config-server</artifactId> 
  </dependency> 
  <!-- sping cloud 注冊服務(wù) --> 
  <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> 
 </dependencies> 
 
 <build> 
  <plugins> 
   <plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
   </plugin> 
  </plugins> 
  <defaultGoal>compile</defaultGoal> 
 </build> 
</project> 

application.java

package com.caiconyang.conf; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.config.server.EnableConfigServer; 
 
/** 
 * Spring could conf程序主入口 
 * @author Administrator 
 * 
 */ 
@SpringBootApplication 
@EnableConfigServer 
public class Application { 
 public static void main(String[] args) {  
  SpringApplication.run(Application.class,args);  
 }  
} 

application.properties

server.port=8888 
## App配置文件所在git地址 
spring.cloud.config.server.git.uri=https://git.oschina.net/caicongyang/springCloudConfigRepo.git 
spring.cloud.config.server.git.searchPaths=repo 
spring.application.name=spingCloudConfServer 

4.App 

pom.xml

<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.caicongyang</groupId> 
 <artifactId>springCloudApp</artifactId> 
 <version>0.0.1-SNAPSHOT</version> 
 
 <parent> 
  <groupId>org.springframework.cloud</groupId> 
  <artifactId>spring-cloud-starter-parent</artifactId> 
  <version>Angel.SR6</version> 
 </parent> 
 <properties> 
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
  <java.version>1.7</java.version> 
  <java.encoding>UTF-8</java.encoding> 
  <springfox.swagger.version>2.2.2</springfox.swagger.version> 
 </properties> 
 <dependencies> 
  <dependency> 
   <groupId>org.springframework.boot</groupId> 
   <artifactId>spring-boot-starter-web</artifactId> 
  </dependency> 
  <!-- sping cloud 監(jiān)控 http://localhost:8080/health --> 
  <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> 
  <!-- sping cloud 注冊服務(wù) --> 
  <dependency> 
   <groupId>org.springframework.cloud</groupId> 
   <artifactId>spring-cloud-starter-eureka</artifactId> 
  </dependency> 
   <!-- sping cloud 路由 --> 
  <dependency> 
   <groupId>org.springframework.cloud</groupId> 
   <artifactId>spring-cloud-starter-hystrix</artifactId> 
  </dependency> 
 
  <dependency> 
   <groupId>org.springframework.boot</groupId> 
   <artifactId>spring-boot-starter-test</artifactId> 
   <scope>test</scope> 
  </dependency> 
  <dependency> 
   <groupId>io.springfox</groupId> 
   <artifactId>springfox-swagger2</artifactId> 
   <version>${springfox.swagger.version}</version> 
  </dependency> 
  <dependency> 
   <groupId>io.springfox</groupId> 
   <artifactId>springfox-swagger-ui</artifactId> 
   <version>${springfox.swagger.version}</version> 
  </dependency> 
 </dependencies> 
  
 
 <build> 
  <finalName>spingcould</finalName> 
  <plugins> 
   <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <source>${java.version}</source> 
     <target>${java.version}</target> 
     <encoding>${java.encoding}</encoding> 
     <showWarnings>true</showWarnings> 
    </configuration> 
   </plugin> 
  </plugins> 
 </build> 
 
 
</project> 

Application.java

package com.caicongyang.springCloudApp.main; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
 
/** 
 * Spring could web程序主入口 
 * @author Administrator 
 * 
 */ 
@Configuration//配置控制 
@EnableAutoConfiguration//啟用自動(dòng)配置 
@ComponentScan(value={"com.caicongyang.springCloudApp"})//組件掃描 
@EnableDiscoveryClient 
public class Application { 
 public static void main(String[] args) {  
  //第一個(gè)簡單的應(yīng)用,  
  SpringApplication.run(Application.class,args);  
 }  
} 

SwaggerConfig.java

package com.caicongyang.springCloudApp.conf; 
 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
 
import springfox.documentation.service.ApiInfo; 
import springfox.documentation.spi.DocumentationType; 
import springfox.documentation.spring.web.plugins.Docket; 
import springfox.documentation.swagger2.annotations.EnableSwagger2; 
 
/** 
 * 
 * @author caicongyang1 
 * @version id: SwaggerConfig, v 0.1 16/4/22 下午4:12 caicongyang1 Exp $$ 
 */ 
@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 
 
 @Value("${swagger.ui.enable}") //該配置項(xiàng)在配置中心管理 
 private boolean environmentSpecificBooleanFlag; 
  
 @Bean 
 public Docket docketFactory() { 
  return new Docket(DocumentationType.SWAGGER_2).apiInfo( 
   new ApiInfo("接口文檔", "SpingCloud web接口列表", "1.0", "", "", "", "")).enable(environmentSpecificBooleanFlag); 
 } 
} 

application.properties

server.port=8080 
spring.cloud.config.uri=http://127.0.0.1:8888 
spring.cloud.config.name=springCloudApp 
spring.cloud.config.profile=${config.profile:dev} 
#service discovery url 
eureka.client.serviceUrl.defaultZone=http://localhost:9999/eureka/ 
#service name 
spring.application.name=springCloudApp 

5.測試與驗(yàn)證

順序啟動(dòng)服務(wù)注冊發(fā)現(xiàn)spingCloudEurekaServer、服務(wù)配置中心spingCloudConfServer、以及一個(gè)app應(yīng)用springCloudApp

測試與驗(yàn)證

1.訪問http://localhost:9999/eureka/  app是否已經(jīng)注冊上來

2.訪問 http://localhost:8080/swagger-ui.html 是否正常訪問,如果正常訪問說明爭取讀取到config配置中心的swagger.ui.enable配置項(xiàng)

6.源碼:以上所有源碼:springcloud_jb51.rar

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解析JAVA深度克隆與淺度克隆的區(qū)別詳解

    解析JAVA深度克隆與淺度克隆的區(qū)別詳解

    本篇文章是對JAVA深度克隆與淺度克隆的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • java 8 lambda表達(dá)式中的異常處理操作

    java 8 lambda表達(dá)式中的異常處理操作

    這篇文章主要介紹了java 8 lambda表達(dá)式中的異常處理操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 在SpringBoot中注入RedisTemplate實(shí)例異常的解決方案

    在SpringBoot中注入RedisTemplate實(shí)例異常的解決方案

    這篇文章主要介紹了在SpringBoot中注入RedisTemplate實(shí)例異常的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 深入淺析MyBatis foreach標(biāo)簽

    深入淺析MyBatis foreach標(biāo)簽

    Mybatis foreach 標(biāo)簽用于循環(huán)語句,它很好的支持了數(shù)據(jù)和 List、set 接口的集合,并對此提供遍歷的功能,本文給大家介紹MyBatis foreach標(biāo)簽的相關(guān)知識,感興趣的朋友一起看看吧
    2021-09-09
  • 深入理解Java中Filter的作用種類及應(yīng)用場景

    深入理解Java中Filter的作用種類及應(yīng)用場景

    Filter(過濾器)是Java Web中的一種重要組件,可以對請求和響應(yīng)進(jìn)行攔截處理,對數(shù)據(jù)進(jìn)行過濾和處理。Filter可以實(shí)現(xiàn)許多功能,如:鑒權(quán)、日志記錄、字符編碼轉(zhuǎn)換、數(shù)據(jù)壓縮、請求重定向等等
    2023-04-04
  • IDEA部署JavaWeb項(xiàng)目到Tomcat服務(wù)器的方法

    IDEA部署JavaWeb項(xiàng)目到Tomcat服務(wù)器的方法

    這篇文章主要介紹了IDEA部署JavaWeb項(xiàng)目到Tomcat服務(wù)器的方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-06-06
  • java 如何讀取properties文件

    java 如何讀取properties文件

    這篇文章主要介紹了java 如何讀取properties文件,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • 學(xué)生視角看Java 面向?qū)ο蟮睦^承本質(zhì)

    學(xué)生視角看Java 面向?qū)ο蟮睦^承本質(zhì)

    繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級層次的類。繼承就是子類繼承父類的特征和行為,使得子類對象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為
    2022-03-03
  • 如何通過java獲取文件名和擴(kuò)展名

    如何通過java獲取文件名和擴(kuò)展名

    這篇文章主要介紹了如何通過java獲取文件名和擴(kuò)展名,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Java正則表達(dá)式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java正則表達(dá)式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    什么是正則表達(dá)式,正則表達(dá)式的作用是什么?這篇文章主要為大家詳細(xì)介紹了Java正則表達(dá)式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評論

鸡泽县| 福贡县| 营山县| 东明县| 万全县| 东至县| 新化县| 华阴市| 建湖县| 宣恩县| 新兴县| 麦盖提县| 菏泽市| 昭平县| 西安市| 库车县| 五大连池市| 苗栗市| 互助| 专栏| 陇南市| 沁水县| 孟村| 西畴县| 天峨县| 三门县| 唐海县| 平潭县| 武清区| 兴义市| 闽侯县| 满城县| 浑源县| 南川市| 黑龙江省| 五家渠市| 屯昌县| 游戏| 斗六市| 炎陵县| 怀柔区|