本博客源码可在Gitee上下载。
截至目前,我们已经搭建了4个微服务了,分别是:eureka-server、gateway-service、eureka-client-demo、openfeign-demo。目前仅仅是4个基础服务,我们就要开4个工程,4个窗口,以后成百上千个服务那不得疯?!!
其实我们可以在idea中用一个工程的四个模块来分别表示这4个服务,接下来我们就搞一下。
新建工程
新建一个叫demo-springcloud的工程,选择好工程位置(Location)、构建工具(Gradle)、JDK、gradle版本、包名(GroupId),如下图
创建好的工程长这样:
配置Eureka注册中心子模块
右键工程,选择 新建 -> 模块
给模块起名eureka,如下图
模块创建好后,可以看到工程中多了一个eureka模块
这里需要注意,工程下和模块下分别有一个src目录和build.gradle文件,由于我们不会在工程中编码,所有的工程文件都分布在各个模块中,所以,工程中的src目录是无用目录,这里一定要特别注意
接下来怎么搞?我们来先解决有没有的问题,再解决好不好的问题。其实只要把原来第一篇博文中的eureka注册中心工程配置原封不动拿来就好了。
配置及代码迁移
build.gradle
将原eureka工程中build.gradle文件内容拷贝到这个新工程的eureka模块的build.gradle文件中,我这里因为变换了包名,所以改了包名,其他没动。
plugins {
id 'java'
// spring 依赖管理插件
// https://plugins.gradle.org/plugin/io.spring.dependency-management
id 'io.spring.dependency-management' version '1.1.0'
// spring boot系列版本,不需最新,与mavenBom依赖的版本相同就好
id 'org.springframework.boot' version '3.2.6'
}
group = 'com.hao1st'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', "2023.0.2")
}
dependencyManagement {
// 导入spring cloud 的mavenBom,最新版本2023.0.2
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
dependencies {
// --- Spring cloud starter ---
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
// --- Spring boot starter ---
implementation 'org.springframework.boot:spring-boot-starter-security'
// --- Other dependencies --
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
代码文件
待依赖下载完毕后,将原工程的对应位置的文件拷贝过来,我这里改了包名,所以包名也做了相应修改。
左边是原工程,右边是新的模块。
包名就是创建模块时的groupId.artifactId,用这个路径作为程序的根路径,启动类EurekaApplication放在根路径下,命名规则是{artifactId}Application
application.yml
最后,不要忘了将原工程的配置文件拷过来,什么都不需要动。
启动
到这就算迁移完了,可以启动模块,在浏览器中访问localhost:9000,可以看到eureka界面。