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

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

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思源笔记

    1083 引用 • 3461 回帖 • 285 关注
  • Java

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

    3168 引用 • 8207 回帖

相关帖子

欢迎来到这里!

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

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