zoukankan      html  css  js  c++  java
  • Spring Cloud微服务实战 打造企业级优惠券系统 4-2 搭建Eureka Server模块

    0    课程地址

    https://coding.imooc.com/lesson/380.html#mid=28548

    1    主要内容
    1.1  idea搭建父模块

    a  搭建父模块

    file--》new--》project--》Maven--》Next--》

    groupid 输入:com.imooc.coupon
    ArtifactId 输入:imooc-coupon
    Version 输入:1.0-SNAPSHOT

    next--》

    projectname改为 imooc-coupon

    -->Finish即可。

    b  父模块imooc-coupon.xml修改

    <?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.imooc.coupon</groupId>
        <artifactId>imooc-coupon</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <!-- 子模块,新建model后会自动生成 -->
        <modules>
            <module>coupon-eureka</module>
        </modules>
    
        <!-- 项目的打包类型, 即项目的发布形式, 默认为 jar. 对于聚合项目的父模块来说, 必须指定为 pom -->
        <packaging>pom</packaging>
    
        <!-- springCloud 也是基于Springboot开发,引入springboot 依赖 -->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.4.RELEASE</version>
        </parent>
    
        <!-- SpringCloud版本 -->
        <properties>
            <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
        </properties>
    
        <dependencies>
            <!-- lombok 工具通过在代码编译时期动态的将注解替换为具体的代码,
           IDEA 需要添加 lombok 插件 -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.16.18</version>
            </dependency>
            <!-- 测试用例依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <!-- 标识springcloud版本 -->
        <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>
    
        <!-- 配置远程仓库 -->
        <repositories>
            <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  idea搭建子模块

    a  搭建子模块

    右键imooc-coupon项目--》new --》module--》默认maven--》next--》

    artifactid选为:coupon-eureka

    next--》

    modelname修改为coupon-eureka

    --》finish

    b  子模块coupon-eureka.xml修改

    <?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">
        <parent>
            <artifactId>imooc-coupon</artifactId>
            <groupId>com.imooc.coupon</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <!-- goupid和versionid 默认继承自parent标签中,versionid也可以显示声明,以声明为准确的 -->
        <artifactId>coupon-eureka</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <!-- 需要依赖 eureka server: 提供服务发现与服务注册 -->
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
        </dependencies>
    
        <!--
        SpringBoot的Maven插件, 能够以Maven的方式为应用提供SpringBoot的支持,可以将
        SpringBoot应用打包为可执行的jar或war文件, 然后以通常的方式运行SpringBoot应用
     -->
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    C  子模块applicatoin.yml配置文件设置

    #应用名称
    spring:
      application:
        name: coupon-eureka
    
    #端口号
    server:
      port: 8000
    
    #主机名
    eureka:
      instance:
        hostname: localhost
    #单节点Eureka
      client:
      #标识是否从Eureka中获取注册信息,默认为true,如果为单节点eureka Server
      #不需要同步其他节点的数据,设置为false
        fetch-registry: false
        #是否将自己注册到Eureka上,由于当前应用是单节点eurekaServer
        #需要设置为false
        register-with-eureka: false
        #设置eureka server地址,查询服务和注册服务都需要依赖这个地址
        service-url:
          defalutZone: http://${eureka.instance.hostname}:${server.port}/eureka/

    D  编写测试用例

    package com.imooc.coupon;
    
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    /**
     * EurekaApplication
     *
     * @date 2021/1/7
     * @author 魏豆豆
     */
    //SpringBoot应用,需要加上SpringBootApplication这个注解
    @SpringBootApplication
    //SpringCloud为其提供,加入这个注解为初始化Eureka运行环境
    @EnableEurekaServer
    public class EurekaApplication {
    
        public static void main(String [] args){
    
            SpringApplication.run(EurekaApplication.class,args);
        }
    
    }

    E  启动springboot程序,

    查看http://localhost:8000/

    关于此处介绍见下节

    1.3  遇到问题

    a    测试用例引入不到@SpringBootApplication 注解

    解决方案:pom格式问题。经过排查,是pom.xml引入spirngcloud版本的时候多了个'}'

    b    yml没有自动提示

    解决方案:参见开发软件--》idea文章。没有引入Spring Assistance插件

    2    其他内容

    2.1  yml中自己新学到的内容

    fetch-registry: (自己理解:接收server内容
    register-with-eureka: (自己理解:把自己注册到eureka)
     
  • 相关阅读:
    JSP+JDBC+Servlet--基于数据库的登陆验证
    简单的购物车设计
    控制网页的访问时间
    JSP+JavaBean设计模式
    关于doGet和doPost的疑问
    IDEA连接SQL Server
    no sqljdbc_auth in java.library.path com.microsoft.sql 没有为集成身份验证配置驱动程序。
    数组的属性排序
    关于AFNetworking的Assertion failure崩溃
    C++中static关键字作用总结
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/14238925.html
Copyright © 2011-2022 走看看