CoreArchetype 作为微服务独立部署运行,占据独有的端口,UtilArchetype 做为一个工具库,以依赖的形式为 CoreArchetype 提供服务。
前言
先上示范案例的源代码:
安装使用
一个典型的 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 的安装使用,在上两篇博文中已经提及过了。
分别是:
同时在下文中,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 来演示两个模块之间的对应关系。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于