SpringBoot 仿微服务 CoreArchetype 与 UtilArchetype 的搭配使用

本贴最后更新于 2660 天前,其中的信息可能已经时移俗易

CoreArchetype 作为微服务独立部署运行,占据独有的端口,UtilArchetype 做为一个工具库,以依赖的形式为 CoreArchetype 提供服务。

前言

先上示范案例的源代码:

spring-boot-core-util-demo

安装使用

一个典型的 Maven 项目,引入 IDEA 之后,直接运行 core-module 下的启动类即可。(您可能需要检查一下配置文件,检查相关端口是否被占用)

或者

  • mvn install

  • cd core-module/target/

  • java -jar ./core-module-v1.0.0.jar

源代码中的 util-module 是通过 UtilArchetype 自动生成的。

core-module 是通过 CoreArchetype 自动生成的。

关于这两个 Archetype 的安装使用,在上两篇博文中已经提及过了。

分别是:

SpringBoot 工具库 UtilArchetype

SpringBoot 仿微服务 CoreArchetype

同时在下文中,util-module 的内容我会简称为 util,core-module 的内容将被成为 core。

配置

具体的配置文件为 core 下的 application.yml 文件,也就是说,我们只在能够运行的 core 模块下去配置参数。

对于 util 而言,我们将它看作一个工具库,所以它只需要提供外界需要配置的参数,而至于参数的内容是什么,util 本身不需要关心。

所以在 util 下,跟配置相关的就三个核心的类注意:

  • Main

    没错,即便是工具库,本身也具备了一个 Main 类,其代码为:

    @Configuration @Import({UtilConfig.class}) public class Main { }
  • UtilConfig

    初始化 Bean 对象的配置类

    @Configuration public class UtilConfig { @Bean @ConfigurationProperties(prefix = "liumapp.test.module.util") public UtilParams utilParams(){ UtilParams utilParams = new UtilParams(); return utilParams; } @Bean public Guest guest(UtilParams utilParams) { Guest guest = new Guest(); guest.setAppKey(utilParams.getAppKey()); return guest; } }
  • UtilParams

    定义了该工具库需要的参数

    @Component public class UtilParams { private String appKey; public String getAppKey() { return appKey; } public void setAppKey(String appKey) { this.appKey = appKey; } }

其中的 UtilConfig 将会去接收在 core 下的 application.yml 配置文件中的

liumapp: test: module: util: *****

下面的参数,并自动写入 UtilParams 中,当然了,前提是配置的参数必须是 UtilParams 的实际属性,并且要具有写方法的属性。

pom

core 下需要引入 util,除了配置,还需要在 pom 的配置文件中去加载 util:

<dependency> <groupId>com.liumapp.test.module.util</groupId> <artifactId>util-module</artifactId> <version>v1.0.0</version> </dependency>

加载之后,在 core 的 Main 类中,使用 Import 注解,导入 util 的 Main 类即可剩余的工作。

@Configuration @Import({UtilConfig.class}) public class Main { }

效果

效果很简单,运行 core 的启动类,打开浏览器访问之后,便能够看到 core 利用 Spring 的依赖注入,使用 util 下的 Guest 类,来输出打印配置文件的 AppKey 的内容。

当然,这并没有什么实际的意义,更多的作用是作为一个 Demo 来演示两个模块之间的对应关系。

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 165 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3195 引用 • 8215 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...