这篇文章主要介绍如何在springboot中如何创建含有多个module的工程,栗子中含有两个 module,一个作为libarary. 工程,另外一个是主工程,调用libary .其中libary jar有一个服务,main工程调用这个服务。

创建根工程

创建一个maven 工程,其pom文件为:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.forezp</groupId><artifactId>springboot-multi-module</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>springboot-multi-module</name><description>Demo project for Spring Boot</description></project>

需要注意的是packaging标签为pom 属性。

创建libary工程

libary工程为maven工程,其pom文件的packaging标签为jar 属性。创建一个service组件,它读取配置文件的 service.message属性。

@ConfigurationProperties("service")
public class ServiceProperties {/*** A message for the service.*/private String message;public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}
}

提供一个对外暴露的方法:

@Configuration
@EnableConfigurationProperties(ServiceProperties.class)
public class ServiceConfiguration {@Beanpublic Service service(ServiceProperties properties) {return new Service(properties.getMessage());}
}

创建一个springbot工程

引入相应的依赖,创建一个web服务:

@SpringBootApplication
@Import(ServiceConfiguration.class)
@RestController
public class DemoApplication {private final Service service;@Autowiredpublic DemoApplication(Service service) {this.service = service;}@GetMapping("/")public String home() {return service.message();}public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}

在配置文件application.properties中加入:

service.message=Hello World

打开浏览器访问:http://localhost:8080/;浏览器显示:

Hello World

说明确实引用了libary中的方法。

参考资料

https://spring.io/guides/gs/multi-module/

源码下载

https://github.com/forezp/SpringBootLearning

SpringBoot第二十二篇: 创建含有多module的springboot工程相关推荐

  1. Java springcloud B2B2C o2o多用户商城 springcloud架构 (二十二)创建含有多module的springboot工程...

    这篇文章主要介绍如何在springboot中如何创建含有多个module的工程,栗子中含有两个 module,一个作为libarary. 工程,另外一个是主工程,调用libary .其中libary ...

  2. SpringBoot第二十五篇:2小时学会springboot

    一.什么是spring boot Takes an opinionated view of building production-ready Spring applications. Spring ...

  3. SpringBoot第二十四篇: springboot整合docker

    这篇文篇介绍,怎么为 springboot程序构建一个docker镜像.docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的 ...

  4. 第二十二篇玩转【斗鱼直播APP】系列之弹出房间界面

    弹出房间界面 功能说明 区分弹出秀场&普通房间 如果用户是秀场直播,那么弹出秀场房间界面 如果用户是电脑直播,那么弹出普通房间界面 秀场界面弹出 直接以Model方式,从底部弹出即可 普通界面 ...

  5. 【手写 Vue2.x 源码】第二十二篇 - dep 和 watcher 关联

    一,前言 上篇,主要介绍了 Vue 依赖收集的过程分析: 介绍了 Vue 的响应式特性 介绍了 Vue 的依赖收集过程 介绍了 dep 和 watcher 以及观察者模式: 本篇,Vue 依赖收集的实 ...

  6. 【C++笔记】第二十二篇 STL

    C++的STL 1. STL 1.1 STL诞生 ① 长久以来,软件界一直希望建立一种可重复利用的东西. ② C++的面向对象和泛型编程思想,目的就是复用性的提升. ③ 大多数情况下,数据结构和算法都 ...

  7. SpringBoot第十二篇:springboot集成apidoc

    首先声明下,apidoc是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,为了springboot系列的完整性,所以标了个题. 一.apidoc简介 apidoc通过在你代码的注释来生 ...

  8. js 浅拷贝直接赋值_第二十二篇 JS中浅拷贝的方法有哪些?

    重要:什么是拷贝?之前也写过类似的文章,大家可以看<理解js的深拷贝和浅拷贝原理和实现的方法> 首先来直观的感受一下什么是拷贝. let arr = [1, 2, 3]; let newA ...

  9. Python之路【第二十二篇】:Django之Model操作

    Django之Model操作 一.字段 AutoField(Field)- int自增列,必须填入参数 primary_key=TrueBigAutoField(AutoField)- bigint自 ...

最新文章

  1. redis3.2的安装和使用
  2. 古剑奇谭二服务器维护,《古剑奇谭二》10月4日例行维护更新公告
  3. 关于I2C协议和SPI协议学习之中的补充修改
  4. 时间序列预测——线性回归(上下界、异常检测),异常检测时候历史数据的输入选择是关键,使用过去历史值增加模型健壮性...
  5. 天津工业大学19年计算机考研大纲,2019年天津工业大学《计算机原理及接口技术》考研复试大纲...
  6. 连接MySQL和连接文件夹区别,对数据库连接问题的一点总结
  7. java零碎要点---大型软件部署方案,磁盘阵列,raid提升硬盘性能,解决由于集群带来的文件共享问题
  8. Integer 与 int 中的 ==
  9. 05_android入门_GET方式实现登陆(在控件上显示服务端返回的内容)
  10. JavaEE学习13--Jquery
  11. Chapter 1 MIMO无线通信系统发展
  12. 阿铭Linux_网站维护学习笔记20190417
  13. cuda the launch timed out and was terminated windows11解决方案 关闭TDR
  14. iMazing安装教程 v2.11.7pjb
  15. 2020大疆校招B卷第三题
  16. Python - PyQT5开发UI界面 - 环境搭建
  17. 5.1劳动节|致敬每一位数字安全劳动者
  18. SSM——SpringMVC
  19. beyond compare下载安装及使用教程
  20. 正则表达式匹配连续相同字符,如...aaa..bbb...11111...2222...

热门文章

  1. 大数据【四】MapReduce(单词计数;二次排序;计数器;join;分布式缓存)
  2. WinCE 7 Mouse HOOK
  3. Vcastr 2.2 flv 网络播放器 参数设置
  4. 与14级团队同学的约定
  5. U盘中毒了?教你如何删除System Volume Information这个顽固文件夹
  6. 又一起“删库”:链家程序员怒删公司 9TB 数据,被判 7 年
  7. TensorFlow官方课程开启,机器学习上车吧
  8. 百度飞桨全新升级:重磅推出PaddleHelix平台、开源框架V2.0RC,硬件生态路线图全公开...
  9. 免费直播:1小时带你体验Python车牌识别实战
  10. Excel弱爆了!这个工具30分钟完成了我一天的工作量,零基础、文科生也能学!...