创建springboot项目的两种方式

本文介绍了创建SpringBoot项目两种方式:1) 作为parent;2) 使用`import`依赖管理。针对第一种方式在多模块项目中的局限性,提出通过第二种方式解决,并详细解释了解决打包和单元测试问题的配置方法。

创建springboot项目的两种方式

一、第一种方式:springboot作为parent

我们一般情况下,创建一个单个的springboot项目时,在项目的pom.xml文件里,指定当前项目的parent为spring-boot-starter-parent即可,配置如下:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

这种方式是最常用的,也是用spring starter,不管是网页版,还是IDE里的项目向导默认的方式。

但是这种方式对于多模块项目存在一个严重问题:就是所有的子模块都必须是spring boot项目。

这是非常荒谬的设计。比如一个项目结构如下:

└── hefrpc
    ├── hefrpc-core
    ├── hefrpc-demo-api
    ├── hefrpc-demo-consumer
    ├── hefrpc-demo-provider
    └── pom.xml

实际上只有子项目hefrpc-demo-consumer和hefrpc-demo-provider需要是springboot项目,分别有一个HefrpcDemoConsumerApplication和HefrpcDemoProviderApplication作为启动类。其他项目没有,也不需要这个类。

其中hefrpc-core只需要依赖spring即可。hefrpc-demo-api只有接口描述,不需要任何依赖。

此时,如果hefrpc作为整个项目的根节点,如果引入了springboot作为parent,那么默认下面的这四个子项目都是springboot项目。从而导致整体无法使用mvc package打包运行。

那么这种情况下怎么办呢?

一个自然而然的想法是,hefrpc不去引入springboot作为parent,而是让hefrpc-demo-consumer和hefrpc-demo-provider引入springboot。这个想法非常正确,直接可以解决上面的问题。

但是问题是:使用什么姿势来引入呢?

如果还是用parent来引入,带来的问题就是,hefrpc-demo-项目的父pom不是hefrpc,而是springboot,这就某种意义上破坏了项目结构(虽然它也可以运行)。这时候怎么办呢?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值