Idea 创建简单的SpringBoot 父子项目

背景

使用Idea 创建一个模块化的SpringBoot项目,但是发现Idea 创建父子项目的方式较Eclipse 较为不同,且Idea 创建的过程较Eclipse创建父子项目的过程复杂。
Eclipse 创建SpringBoot父子项目传送门

网上虽然有Idea创建SpringBoot父子项目,但是携带各种其他的功能,导致无法简单的搞懂如何创建。下面就一个例子进行说明一下。

构建简单SpringBoot父子项目

环境说明:jdk1.8
Idea 版本:2019.3
(1)打开Idea,如果是新安装的软件,不会有历史项目
在这里插入图片描述
(2)点击 “Create New Project”,进入一个新的项目的创建界面。父项目直接创建一个Maven项目即可
在这里插入图片描述
PS:不要勾选 “Create from archetype”
点击下一步。
(3)进入父项目的创建页面,填写项目名称和GoupId与坐标
在这里插入图片描述
PS:可以在上图红圈标注的地方修改项目的地址
(4)点击Finish 按钮,完成一个父项目的创建。
下图是点击Finish 创建好的项目在Idea 软件中打开的情况:
在这里插入图片描述
(5)在现有父项目的基础上新建SpringBoot子项目
在父项目的名称的位置右键鼠标:
在这里插入图片描述
(6)新建一个Module,进入新建页面。
子项目直接选择Spring initializr,创建一个SpringBoot项目
在这里插入图片描述
点击下一步,进入子项目的具体构建内容。
在这里插入图片描述
填写坐标后,点击下一步。
(7)进入新建项目选择插件,由于我们测试需要,所以直接简单的选择了web
在这里插入图片描述
点击下一步,可以更改项目名称和地址
在这里插入图片描述
可以看出,子项目的地址默认在父项目文件夹下。点击Finish完成子项目的创建。
(8)可以删除一些子项目不需要的文件,不删也行
在这里插入图片描述
P: 还有父项目的src文件夹,这个已经不需要了,所以可以直接删除

(9)经过 1-8 步的操作,我们创建了父子项目结构,但是这两个项目尚未实现父子关系。下面我们需要更改POM文件,来实现父子关系。
在这里插入图片描述
这里我们先粘贴出还没有改变关系之前的父子结构项目原有的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.codingdemo</groupId><artifactId>springboot-demo</artifactId><version>1.0-SNAPSHOT</version>
</project>
  • 子项目
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.codingdemo</groupId><artifactId>springboot-demo-redis</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot-demo-redis</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

(10)首先将你认为子项目中是公共的部分拿到父项目中,包括spring-boot-starter-parent 和一些 properties 以及build 等公共配置

<!--1 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent>
<!--2 -->
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties>
<!--3-->
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

上面子项目中的配置文件都可以拿到父项目的POM文件中 。
(11)将父项目的坐标,复制到 子项目的父坐标中

	<parent><groupId>com.codingdemo</groupId><artifactId>springboot-demo</artifactId><version>1.0-SNAPSHOT</version></parent>

(12) 父项目 新增 pom
P:这个必须
在这里插入图片描述
(13)将子项目的moudle 关联到 父项目中

  <modules><module>springboot-demo-redis</module></modules>

在这里插入图片描述
(14)我们再来看下新的父子项目的 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><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.codingdemo</groupId><artifactId>springboot-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><module>springboot-demo-redis</module></modules><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
  • 子项目
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.codingdemo</groupId><artifactId>springboot-demo</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.codingdemo</groupId><artifactId>springboot-demo-redis</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot-demo-redis</name><description>Demo project for Spring Boot</description></project>

读者可以对比一下,没有改造之前的POM文件,有什么差距
(15) 我们来验证一下,父子项目是否成功创建
我们在子项目中新增一个Controller ,进行一下简单Web访问,查看是否成功
在这里插入图片描述

package com.codingdemo.springbootdemoredis.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "hello world!";}
}

启动一下SpringBoot 启动类,输入网址
在这里插入图片描述
可以看到能够成功访问,我们已经成功搭建好简单的父子SpringBoot项目
(16) 如果我修改 Controller的方法,需要重启项目,这样比较麻烦。下面是如何配置热部署SpringBoot项目

SpringBoot项目的热部署

(1)在上面现有的父子SpringBoot项目中,在父项目POM文件增加热部署的devtools依赖。

<!-- 热加载 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><scope>true</scope></dependency><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--热加载必须配上以下内容--><configuration><fork>true</fork></configuration></plugin></plugins></build>

(2) 我们可以在配置文件中设置devtools

### 热部署配置
spring.devtools.restart.enabled=true 
spring.devtools.restart.additional-paths=src/main/java
spring.devtools.restart.poll-interval=1s
spring.freemarker.cache=false

(3)如果修改了Controller的函数但是还是没有热加载,可能是由于你是新的项目需要设置开启自动编译
在这里插入图片描述
P:勾上
重启项目后,然后再次修改文件后,便可以看到开始热部署了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python曲线拟合预测_用python做曲线拟合

大家好&#xff1f;我是Kepler哎学习&#xff0c;最近在工程中用到曲线拟合。一般我们都是用matlab来做&#xff0c;方便快捷。我们也可以尝试用python编写脚本来拟合数据&#xff0c;方便数据自动化处理。曲线拟合分为一般多项式拟合和指定函数拟合。准备工作&#xff1a;1.建…

微服务架构与SpringCloud

微服务架构简述 通常而言&#xff0c;微服务架构是一种架构模式或者说是一种架构风格&#xff0c;它提倡将单一应用程序划分成一组小的服务&#xff0c;每个服务运行在其独立的自己的进程中&#xff0c;服务之间互相协调、互相配合为用户提供最终价值。服务之间采用轻量级的通…

应用商店应用计算机,基于中国虹计算机的应用商店的设计与实现

摘要&#xff1a;随着互联网的不断发展,第三方应用商店的活跃用户数已达到数亿规模,而且仍然在不断增长,同时各终端厂商也陆续推出了适用于自家终端的应用商店.中国虹计划课题项目经过多年发展,其核心载体中国虹计算机也得到了大量的推广使用,但是中国虹计算机现有的云桌面应用…

python对字符串数组进行排序、依据字符数_Python进行数据的排序以及字符串的操作...

数据异常值的过滤在数据分析中&#xff0c;经常需要检测数据结构中的异常值。我们还是举个例子&#xff0c;先来创建一个包含三列的DataFrame对象&#xff0c;每一列都包含1000个随机数。可以用describe( )函数查看每一列的描述性统计量。例如&#xff0c;你可以会将比标准差大…

REST和RPC是什么东东?两者有什么区别

1 REST与RPC概念 什么是REST REST是一种架构风格&#xff0c;指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST规范把所有内容都视为资源&#xff0c;网络上一切皆资源。 REST并没有创造新的技术&#xff0c;组件或服务&#xff0c…

简述计算机进行远程桌面管理操作过程,服务器应用之“远程桌面连接”(操作篇)...

在上篇《服务器应用之“远程桌面连接”(部署篇) 》《服务器应用之“远程桌面连接”(建立篇) 》&#xff0c;我们介绍了远程桌面的部署和建立方法。在远程桌面连接成功后就可以进行一些远程桌面连接可以进行的计算机管理了。具体可以进行的远程桌面连接操作如下&#xff1a;1. 使…

未为dll加载任何符号_专家发现aspersky 和Trend Micro安全性解决方案中的DLL劫持问题...

SafeBreach的研究人员发现了Kaspersky安全连接、Trend Micro最大安全性和Autodesk桌面应用程序中的几个DLL劫持漏洞&#xff0c;黑客可以利用这些漏洞进行DLL预加载、代码执行和权限升级。第一个问题在卡巴斯基安全连接(KSDE) VPN客户端&#xff0c;跟踪为CVE-2019-15689&#…

什么是Eureka? 单机版Eureka如何使用?

Eureka 是什么&#xff1f; Eureka 是Spring Cloud的服务治理组件&#xff0c;有三个核心角色&#xff1a; 服务注册中心、服务提供者、服务消费者。Eureka 主管服务注册中心。 是Netflix的一个子模块&#xff0c;也是核心模块之一。Eureka是一个基于REST的服务&#xff0c;用…

ntko跨浏览器插件_继泄露版后,微软全新 Chrome 内核 Edge 浏览器你都测试过了吗?...

尽管微软的 Office 和 Windows 10 势头不错&#xff0c;但像 WP 手机、XBox 等方面似乎并未获得预期的成功。而先前为了替代老旧的 IE 浏览器&#xff0c;微软倾力开发的 Edge 也未见起色。不过微软也一直在努力变得更加开放&#xff0c;比如发布 VS for Mac、Office for Mac、…

软考计算机英语考题,《全国计算机软考网管英语试题及答案.doc

《全国计算机软考网管英语试题及答案全国计算机软考网管英语试题及答案(1)Heterogeneous network environments consist of computer systems from(1)vendors that run(2)operating systems and communication protocols&#xff0e;An organization that(3)its computer resou…

如何将单机版的Eureka服务改为集群版Eureka服务

Eureka 集群原理 基本原理 上图是来自eureka的官方架构图&#xff0c;这是基于集群配置的eureka&#xff1b; 处于不同节点的eureka通过Replicate进行数据同步Application Service为服务提供者Application Client为服务消费者Make Remote Call完成一次服务调用 服务启动后向…

python统计字数分布可视化展示_数据的概率分布并用python实现概率分布可视化图...

一、基础概念先来看下数据的类型&#xff0c;常见的数据分类方式有三种&#xff1a;第一种是按照数据的结构属性分类&#xff0c;根据数据的存储形式分为结构化数据和非结构化数据&#xff0c;例如数据库的存储对象基本上都是结构化数据&#xff0c;结构化数据是进行数据分析的…

台式计算机读不到u盘怎么回事,电脑读不出u盘怎么办

把U盘插入电脑USB接口中&#xff0c;却发现找不到U盘图标&#xff0c;甚至连安装U盘驱动的提示也没有&#xff0c;那么电脑读不出u盘怎么办呢?天学习啦小编就和大家说说电脑读不出u盘的解决方法。电脑读不出u盘解决方法1、首先应该排除是否是由于电脑系统问题&#xff0c;具体…

Eureka 与Zookeeper 的区别,Eureka相较于Zookeeper好在哪?

传统的ACID A&#xff08;Atomicity&#xff09; 原子性C&#xff08;Consistency&#xff09; 一致性I &#xff08;Isolation&#xff09;独立性D&#xff08;Durability&#xff09;持久性 关系型数据库&#xff08;MySQL&#xff0c;Oracle&#xff0c;SqlServer&#xf…

断网情况下安装python_断网环境下利用pip安装Python离线安装包

著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。这几天搞Windows离线断网环境下安装Python包&#xff0c;配置环境&#xff0c;各种坑&#xff01;做个记录&#xff0c;供以后查询吧。# 生产环境 windows 7# python 2.7.9# pip 1.5.2友情提示…

计算机英语词组,计算机专业英语词组.doc

Integrated circuit 集成电路Central controller 中央控制器Trigonometry function 三角函数Square root 平方根Floating point 浮点数Real number 实数Logic operation 逻辑运算Superscalar computer 超级计算机Hard disk drive 硬盘驱动器Personal computer 个人计算机Floppy…

python 整数输出 d f_如何将数字(10,11,12,13,14,15)分配给Python 3中的字母(A,B,C,D,E,F)?...

您可以在代码中添加更多行来执行此操作&#xff1a;首先创建两个带有字符的列表&#xff0c;一个带有要映射的整数&#xff0c;然后从那些创建dict&#xff1a;list_1["A","B","C","D","E","F"]list_2[10,11,12,1…

如何将Springboot项目成功部署到linux服务器上?

springboot的jar包方式 idea默认就是jar打包方式所以直接使用maven工具按照步骤点击就可以直接打包ps:打包前你的数据库相关的连接信息要记得修改&#xff0c;不能再用本地的了 第二步&#xff1a;Maven clean &#xff1a;清除编译后的目录&#xff0c;默认是target目录 [IN…

2018年3月计算机二级考试题,2018年3月计算机二级考试Access综合试题十

2018年3月计算机等级考试即将开始&#xff0c;小编在这里为考生们整理了2018年3月计算机二级考试Access综合试题&#xff0c;希望能帮到大家&#xff0c;想了解更多资讯&#xff0c;请关注出国留学网的及时更新哦。2018年3月计算机二级考试Access综合试题十(1)要将“选课成绩”…

sqldataadapter.fill 索引超出了数组界限_小学生学习C++||第十五节 数组

存储数据的方式第一种&#xff0c;变量&#xff1a;存放1个学生的数学成绩可以定义1个变量存放&#xff0c;那么如果想要存放100个学生的数学成绩应该如何存储呢&#xff1f;第二种&#xff0c;数组&#xff1a;引入数组概念&#xff1a;可以用来表达类型相同的元素的集合&…