使用 IDEA 构建聚合工程并引入 Spring Boot
简介
聚合工程里可以分为:
- Project 项目,也可称为顶级项目、顶级工程、父工程
- Module 模块,也可称为子模块、子工程
总结一下:
- 这两者之间是父子继承的关系,即
模块继承顶级项目,模块之间是平级结构,可以相互依赖 - 模块可以使用顶级项目里所有的资源(依赖),模块之前如果要使用资源,必须构建依赖(构建关系)
- 一个顶级项目可以由多个不同的模块共同组合而成
项目结构
一个最简单的聚合工程的项目结构如下
└─foodie
├─foodie-common
│ └─src
└─src
创建顶级项目
- 在
New Project弹出窗左侧中点击Maven,右侧的Project SDK选择喜欢的JDK版本 - 点击
Next按钮 - 根据实际情况填写
Name、Location、GroupId、ArtifactId、Version - 点击
Finish按钮 - 打开
pom.xml(默认已打开),在<version>标签下面添加<packaging>pom</packaging>标签
说明
packaging
<packaging> 标签是指项目的打包方式(The type of artifact this project produces),默认为 jar,最外层的顶级项目指定 pom,鼠标指在标签处,会提示常见的有 4 种方式,分别是 jar、war、ear、pom
提示中也说了 Plugins can create their own packaging, and therefore their own packaging types, so this list does not contain all possible types.,意思是你也可以创建自己的打包类型,不仅限于这 4 种
创建模块(子工程)
- 在左侧的
Project窗口中找到顶级工程,然后在根目录上右键 -> New -> Module - 在
New Module弹出窗的右侧找到Module SDK,选择喜欢的JDK版本 - 点击
Next按钮 - 根据实际情况填写
ArtifactId(Name和Location会跟着变),然后看所有的输入项是否满足期望,不满足的手动修改一下 - 点击
Finish按钮
创建好 Module 后,顶级项目的 pom.xml 中会自动添加 <modules> 标签,其中包含了所有依赖此顶级项目的 Module
构建依赖关系
根据上一小节步骤,再创建一个 Module
然后假设 Module A 依赖于 Module B
- 打开
Module A的pom.xml,在喜欢的位置添加<dependencies>标签(输入<,然后按一下Tab键或Enter键) - 在
<dependencies>标签里面再添加<dependency>标签(输入<,然后按一下Tab键或Enter键) - 在
<artifactId>标签内填写Module B的artifactId,例如module-b - 在
<groupId>标签内填写顶级项目的groupId,例如cn.myesn(第 3 步完成后应该会自动跳转到<groupId>标签,并且会有相应的智能提示)
完成后,Module A 就可以直接使用 Module B 中提供的代码了
安装
如果模块与模块之间有依赖关系,根据上一小节步骤,写完依赖关系
- 点击
IDEA右侧的Maven菜单 - 在
Maven窗口中找到顶级项目,即项目名称后面有(root)字样的 - 展开顶级项目,展开
Lifecycle,双击install
这样子模块之间的依赖关系才会真正存在
顶级项目引入 Spring Boot
- 打开顶级项目的
pom.xml - 在
<moduleVersion>标签下添加以下代码:<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
</parent>
- 在
<properties>标签里面添加以下代码:<!-- 整体源码文件的编码设置 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 整体源码文件编译后输出文件的编码设置 -->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 整体项目 JDK 的版本号 -->
<java.version>1.8</java.version>
- 在
<properties>标签下面添加以下代码:<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<!-- 这里排除 logging 是因为后期要集成其他的 logging 组件 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
- 点击
IDEA软件右侧的Maven,找到顶级项目,然后双击Lifecycle里面的install
接口层模块项目配置
假设已经创建了 api 模块,然后按以下步骤操作:
- 在
api -> src -> main -> resources路径下创建一个application.yml文件 - 在
api -> src -> main -> java路径下创建一个包文件夹,例如cn.myesn,后续用这个举例 - 在
cn.myesn包下创建Application.java文件,然后在里面编写以下代码:package cn.myesn; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 在
cn.myesn包下创建一个controller的文件夹 - 在
controller文件夹下创建一个HiController.java文件,然后在里面编写如下代码:package cn.myesn.controller; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class HiController { @GetMapping("hi")
public ResponseEntity<String> hi(){
return ResponseEntity.ok("hi");
}
}
- 点击
IDEA软件右侧的Maven,找到顶级项目,然后双击Lifecycle里面的install - 右键
Application.java文件,单击Run 'Application'按钮 - 打开浏览器,输入
http://localhost:8080/hi,此时应该能看到页面显示了hi的字样
使用 IDEA 构建聚合工程并引入 Spring Boot的更多相关文章
- step6----->往工程中添加spring boot项目------->修改pom.xml使得我的project是基于spring boot的,而非直接基于spring framework
文章内容概述: spring项目组其实有多个projects,如spring IO platform用于管理external dependencies的版本,通过定义BOM(bill of mater ...
- spring boot 教程(一) 构建我的第一个Spring boot
Spring Boot特点 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标, ...
- 第2章 构建springboot工程 2-2 使用Spring官方STS搭建SpringBoot工程
项目名demo,SpringBoot的版本2.0.6 删了/demo/mvnw和/demo/mvnw.cmd.static文件夹包含静态文件,比如CSS.JS.templates文件夹是放模板的,Sp ...
- maven项目引入spring boot依赖之后filter不生效的问题
maven的filtering没有起作用,没有把占位符给替换掉.(大家可以执行mvn clean package,看看打包后的jar里面的application.properties文件,是否有替换占 ...
- 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程(十五)
在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也 ...
- 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程
在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也 ...
- Spring Boot教程(十五)使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程
在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也 ...
- 使用Intellij中的Spring Initializr来快速构建Spring Boot工程
本文将介绍嵌入的Intellij中的Spring Initializr工具,它同Web提供的创建功能一样,可以帮助我们快速的构建出一个基础的Spring Boot/Cloud工程. 1.菜单栏中选择F ...
- Spring Boot2 系列教程(一) | 如何使用 IDEA 构建 Spring Boot 工程
微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. Search 前言 新年立了个 flag,好好运营这个公众号.具体来说,就是每周要写两篇文章在这个号发表.刚立的 fla ...
随机推荐
- 学习GlusterFS(一)
一.概述 1.GlusterFS是集群式NAS存储系统,分布式文件系统(POSIX兼容),Tcp/Ip方式互联的一个并行的网络文件系统,通过原生 GlusterFS 协议访问数据,也可以通过 NFS/ ...
- Markdown入门操作
Markdown基本操作 一. 字体 1. 标题 (1). 一级标题 "# + 标题名" (2). 其余类推 (最多支持6级标题) 加粗 " ** + 内容 + ** & ...
- 深入理解FIFO(包含有FIFO深度的解释)
FIFO: 一.先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令. 1.什么是FIFO? FIFO是 ...
- 搞懂高并发性能指标:QPS、TPS、RT、吞吐量
一.QPS,每秒查询 QPS:Queries Per Second意思是"每秒查询率",是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的 ...
- Apollo模块文章
Apollo规划模块 自动驾驶公开课 | Apollo 2.5自动驾驶规划控制 : 这篇资料比较早,但是把EM Planner和Lattice Planner这两种在资料上经常看到的算法的来历和大概原 ...
- .NET Core Ecosystem
.NET .NET Blog Application Models Web Mobile Desktop Microservices Gaming Machine Learning Cloud Int ...
- 有关表单autocomplete = "off" 失效问题解决方案
一.autocomplete介绍 autocomplete是Html5中的新属性.该属性规定输入字段是否应该启用自动完成功能.自动完成允许浏览器预测对字段的输入.当用户在字段开始键入的时候,浏览器基于 ...
- 使用 ssm 实现登录日志记录
使用 ssm 实现登录日志记录 学习总结 一.基础准备 1. 实现效果 2. 数据表 2.1 登陆日志信息表 2.3 员工表 二.代码实现 1. SysLogLogin 实体类 2. LogAspec ...
- Idea中创建maven项目(超详细)
Idea中创建maven项目 提示:前提条件时maven已经安装好,并且环境变量也配置完成,maven没安装好或者环境变量没有配置好的请参考我上一篇文章--maven的安装和配置 上篇博文链接:htt ...
- 体验了一把最近很火的开源项目-MASA Blazor
前言 很惭愧直到去年底才接触到Blazor.那什么是Blazor呢?相信大家都看过官方文档的详细说明,另外MASA团队也有不错的说明介绍 .用官方的话说Blazor是一个交互式客户端Web UI的框架 ...