zoukankan      html  css  js  c++  java
  • SpringCloud之项目初始化

    创建 Eureka- Server

    1. 新建 Eureka Server 模块,添加 Eureka Server 依赖
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR4</spring-cloud.version>
    </properties>
        
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
        
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>		
    </dependencies>		    
    
    1. 在配置文件 resources/application. yml 中添加 EurekaServer 相关配置
    # 指定运行端口
    server:
      port: 9000      
    spring:
      application:
    	# 指定服务名称
        name: eureka-server
    eureka:
      instance:
        # 指定主机地址
        hostname: localhost
      client:
        # 指定是否从注册中心获取服务(注册中心不需要开启)
        fetch-registry: false
        # 指定是否将自身注册到注册中心(注册中心不需要开启)
        register-with-eureka: false
    
    1. 在启动类上添加 @EnableEurekaServer 注解来启用 Euerka 注册中心功能
    @EnableEurekaServer
    @SpringBootApplication
    public class EurekaServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    
    }
    
    1. 启动项目,访问 http://localhost:9000 ,可以看到 Eureka 注册中心界面:

    创建 PriceService 模块

    1. 添加依赖
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR4</spring-cloud.version>
    </properties>
        
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <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-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>	
    
    1. 在配置文件 resources/application. yml 添加相关配置
    spring:
      application:
        # 指定服务名称
        name: price-service
    
    eureka:
      client:
        # 注册到 Eureka 的注册中心
        register-with-eureka: true
        # 获取注册实例列表
        fetch-registry: true
        service-url:
          # 指定注册中心
          defaultZone: http://localhost:9000/eureka
    
    1. 在启动类上添加 @EnableDiscoveryClient 注解
    @EnableDiscoveryClient
    @SpringBootApplication
    public class PriceServiceApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(PriceServiceApplication.class, args);
        }
    
    }
    
    1. 创建 PriceController,实现根据商品Id 获取价格功能
    @RestController
    @RequestMapping("/price")
    public class PriceController {
    
        @GetMapping("/getPrice/{productId}")
        public BigDecimal getPrice(@PathVariable("productId") String productId) {
            System.out.println("productId=" + productId);
            return new BigDecimal("100");
        }
    
    }
    
    1. 启动两个 PriceService 服务

    创建 OrderService 模块

    1. 添加依赖
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR4</spring-cloud.version>
    </properties>
        
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <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-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>	
    
    1. 在配置文件 resources/application. yml 添加相关配置
    server:
      # 指定运行端口
      port: 8005
    spring:
      application:
        # 指定服务名称
        name: order-service
    
    eureka:
      client:
        # 注册到 Eureka 的注册中心
        register-with-eureka: true
        # 获取注册实例列表
        fetch-registry: true
        service-url:
          # 指定注册中心
          defaultZone: http://localhost:9000/eureka
    
    
    1. 在启动类上添加 @EnableDiscoveryClient 注解
    @EnableDiscoveryClient
    @SpringBootApplication
    public class OrderServiceApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(OrderServiceApplication.class, args);
        }
    
    }
    
    
    1. 新建 OrderController 用于访问 PriceService 获取价格
    @RestController
    @RequestMapping("/order")
    public class OrderController {
    
        private final RestTemplate restTemplate;
    
        public OrderController(RestTemplate restTemplate) {
            this.restTemplate = restTemplate;
        }
    
        @GetMapping("/getPrice")
        public BigDecimal getPrice(String productId) {
            // TODO 方法待实现
    		return null;
        }
    
    }
    
  • 相关阅读:
    数据预处理之数据可视化
    RESTful和JAX-RS
    Mac Security工具使用总结
    《Java核心技术卷一》笔记 多线程同步(底层实现)
    Java SSH库使用简介:Apache sshd和JSch(Java Secure Channel)
    maven资源文件的相关配置
    《Java核心技术卷一》笔记 多线程
    《Ant权威指南》笔记(一)
    《Java核心技术卷二》笔记(三)正则表达式
    《Java核心技术卷二》笔记(二)文件操作和内存映射文件
  • 原文地址:https://www.cnblogs.com/markLogZhu/p/13496867.html
Copyright © 2011-2022 走看看