spring-boot 2.0 多模块化项目和EurekaServer的搭建

Spring boot由于其

  1、易于开发和维护。2、单个微服务启动快。3、局部修改部署容易。4、技术栈不受语言限制等优点受到越来越多公司的重视。spring-boot还集成了许多关于微服务开发的框架(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态),使我们部署微服务免去了繁琐的配置。

下面我们来学习利用spring-boot搭建电商项目。

Spring Boot 2.0.0-SNAPSHOT 要求 Java 8 和 Spring Framework 5.0.2以上,Maven 3.2 以上或者Gradle 4。

本文使用 Spring Boot 2.0.0-SNAPSHOT Java9 和 Spring Framework 5.0.2.RELEASE以上,Maven 3.3.9。开发工具使用sping官方提供的spring suit tool 3.9.1(STS)。

一、Spring多模块化项目的搭建

  首先我们需要建立一个Spring-boot的父项目,一个多模块项目通过一个父POM 引用一个或多个子模块来定义。

    <!-- 定义spring-cloud的路径 -->
    <groupId>com.hzt.cloud</groupId>
    <artifactId>esupermarket</artifactId>
    <!-- 自定义父项目的版本 -->
    <version>1.0.0</version>
    <!-- 假如为父项目,打包方式必须为pom -->
    <packaging>pom</packaging>

并且删除文件根目录下所有文件,只留下pom.xml即可。

    <!-- 使当前项目继承spring-boot 2.0 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>

然后定义我们所需要的spring-boot的版本,这样我们项目就是使用的spring-boot 2.0版本了。

<!-- 定义继承此父类的子模块,module中填写的为子模块的 artifactId-->
    <modules>
        <module>eureka-server</module>
        <module>eureka-server1</module>
    </modules>

同时插入我们即将定义的子模块,这样子模块既可以使用父模块中引入的依赖。

<dependencyManagement>
        <dependencies>
        <!-- 加入spring-boot 关于web的依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!-- 统一依赖管理 -->
            <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>

加入spring-boot关于web以及统一依赖管理的模块.

<!-- 仓库管理 -->
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

这样我们父类模块的pom即搭建成功.

二、子模块 EurekaServer服务的搭建

   右键父模块 new -> mavenmodule ,创建一个子模块

  1、pom.xml的配置

  

<modelVersion>4.0.0</modelVersion>
    <!-- 项目名 , 不需要groupId和name标签-->
    <artifactId>eureka-server1</artifactId>
    <!-- 打包方式 -->
    <packaging>jar</packaging>

    <!-- 继承的父类 , 为父模块 -->
    <parent>
        <groupId>com.hzt.cloud</groupId>
        <artifactId>esupermarket</artifactId>
        <!-- 版本为父类定义的version标签 -->
        <version>1.0.0</version>
        <relativePath/>
    </parent>

    <dependencies>
    <!-- 引入关于 eureka-server的依赖 -->
        <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-security</artifactId>        </dependency>
    </dependencies>

其中,spring-boot 2.0和2.0以前引入 eureka-server的artifactId有所区别。

2、启动类

@SpringBootApplication//启动注解,表示此为spring-boot的一个入口类
@EnableEurekaServer//此行注解代表为一个服务注册组件,此注解仅适用于eureka
//@EnableDiscoveryClient//此注解同上,但是适用于其他服务注册主件
public class EurekaServerApplication {

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

我们可以根据不同的服务发现方式定义不同的注解。@EnableDiscoveryClient注解可以支持其他的服务发现方式。

3、application.yml配置文件

server:
  #配置eurekaServer的端口号
  port: 8761
security:
  basic:
    #代表开启账号密码认证,登录eurekaServer时需要输入账号密码
    enabled: true
  user:
    name: root
    password: 123
eureka:
  client:
    service-url:
      #代表注册到eureka服务端的地址
      defaultZone: http://root:[email protected]:8761/eureka
      #该服务为注册中心,增加此行代表不在注册中心注册自己
    register-with-eureka: false
    #由于注册中心呢的职责是维护实例,为FALSE代表其不用去检索服务
    fetch-registry: false
    #配置主机名
  instance:
    hostname: peer1
    #配置服务名
spring:
  application:
    name: eureka-server
    

同理 , 我们可以配置一个eurekaServer1搭建eurekaServer的高可用集群。其中peer1为我本地机器上配置的负载地址,指向www.peer1.com。启动服务器。

  

原文地址:https://www.cnblogs.com/zeryts/p/8627760.html

时间: 2024-07-30 20:26:59

spring-boot 2.0 多模块化项目和EurekaServer的搭建的相关文章

Spring boot 2.0 新特性之动态 Banner

Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜. 配置依赖 使用 Spring Boot 2.0 首先需要将项目依赖包替换为刚刚发布的 2.0 RELEASE,现在网站https://start.spring.io/也将 Spring Boot 2.0 设置为默认版本. <parent> <groupId>org.springframework.boot</groupId> <artifactI

Spring Boot 2.0(七):Spring Boot 如何解决项目启动时初始化资源

在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等.今天就给大家介绍一个 Spring Boot 神器,专门帮助大家解决项目启动初始化资源操作. 这个神器就是 CommandLineRunner,CommandLineRunner 接口的 Component 会在所有 Spring Beans都初始化之后,SpringApplication.run()之前执行,非常适合在应用程序启动之初进行一些数据初始化的工作. 接下来我们就运用案

使用Spring Boot来加速Java web项目的开发

使用Spring Boot来加速Java web项目的开发 我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用gradle来构建的话基本也一样)然后新建Spring相关的xml文件,而且往往那些xml文件还不会少.然后继续使用tomcat或者jetty作为容器来运行这个工程.基本上每次创建一个新的项目都是这么一个流程,而我们有时候仅仅想快速的创建一

使用Spring Boot和Gradle创建AngularJS项目

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 本文主要是记录使用 Spring Boot 和 Gradle 创建项目的过程,其中会包括 Spring Boot 的安装及使用方法,希望通过这篇文章能够快速搭建一个项目. 1. 开发环境 操作系统: mac JDK:1.7.0_60 Gradle:2.2.1 IDE:Idea 2. 创建项目

阿里P9告诉你 Spring Boot 2.0正式发布,升还是不升呢?

Spring帝国Spring几乎是每一位Java开发人员都耳熟能详的开发框架,不论您是一名初出茅庐的程序员还是经验丰富的老司机,都会对其有一定的了解或使用经验.在现代企业级应用架构中,Spring技术栈几乎成为了Java语言的代名词,那么Spring为什么能够在众多开源框架中脱颖而出,成为业内一致认可的技术解决方案呢?我们不妨从最初的Spring Framework开始,看看它为什么能够横扫千军,一统江湖! 挑战权威,一战成名 2004年3月,Spring的第一个版本以及其创始人Rod John

spring boot 2.0.0由于版本不匹配导致的NoSuchMethodError问题解析

spring boot升级到2.0.0以后,项目突然报出 NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init> 异常, 跟踪源代码无果的情况下.突然想到有可能是spring boot 和 spring cloud版本不匹配导致的. 于是,上官网看spring cloud的依赖,首先看Edgware.SR2版本的依赖,可以看出Edgware.SR2依赖是1.5.X版本 <par

Spring Boot 2.0(六):使用 Docker 部署 Spring Boot 开源软件云收

只需三步即可部署开源项目云收藏,打造专属个人的收藏系统,就是这么简单! 云收藏项目已经开源2年多了,作为当初刚开始学习 Spring Boot 的练手项目,使用了很多当时很新的技术,现在看来其实很多新技术是没有必要使用的,但做为学习案例来讲确实是一个绝佳的 Spring Boot 实践. 从开源到现在,写了一些教程给大家介绍如何部署云收藏,如何在IDE中运行云收藏,但是仍然有很多的朋友不知道如何使用,如何部署?就像"请提供一份云收藏数据结构" 这样的问题我至少都回答了一百多次,并且在

Spring Boot 2.0 热部署指南

Spring Boot 2.0 支持热部署,实现方法很简单 Spring Boot 2.0 有几种热重载的选项. 推荐的方法是使用spring-boot-devtools 因为它提供了额外的开发时间功能,例如支持快速应用程序重启和LiveReload以及合理的开发时配置(如模板缓存). Devtools通过监视类路径的变化来工作. 这意味着静态资源更改必须"建立",以使更改生效. 默认情况下,当您保存更改时,这会在Eclipse中自动发生. 在IntelliJ IDEA中,Make P

Spring Boot 2.0——SpringApplication 深入探索

前言 在 Spring Boot 项目的启动类中常见代码如下: @SpringBootApplicationpublic class SpringbotApplication {    public static void main(String[] args) {         SpringApplication.run(SpringbotApplication.class, args);     } } 其中也就两个比较引人注意的地方: @SpringBootApplication Spr