先说好,我的idea版本不算很低,至少是2023年以后的,springboot建立的版本也不算很低。

首先,主流有两种方式通过手脚架来配置springboot。

服务器URL处显示:https://start.spring.io是第一种,这是官方提供的设置基础,但问题在于,如果你的jdk版本在17以下(比如经典的1.8,很多大学生的第一位jdk),是没有办法使用java选项里面的17和21,只能使用24。那么,对于不打算换jdk的同学来说怎么办呢?,就可以用下面第二种方式!

第二种方法服务器URL处替换为:https://start.aliyun.com/ ,通过阿里云来建立连接

就会发现,可以使用java8了,不需要强迫自己升级jdk(当然还是升级了好)

然后再针对jdk17的同学来说,进去之后,springboot的版本将不再是2.x这种3以下的版本,都是从版本3以上开始,好处是多了一些依赖可以选择,比如OpenAi。

然后假如说这里选择最最基本的两个依赖:web和MySQL

你会发现,项目建立之后(此时,也许你还得改一下你的maven配置,用你自己电脑上面的,这方面不多讲)

idea根据maven给你自动配置的依赖版本不一定很低,可能和你的一些东西对不上,也许你需要改一下pom文件里面这些依赖的版本。

接着,就是本文重点,拆分模块!假如说你要拆分成child1、child2、child3,那么到你的主项目下面去新建模块即可,注意第一次建立项目时父模块所使用的依赖,在建立新子模块时可以不需要再选择,它可以被继承下来,子模块选择它需要独有的即可。

由于手脚架默认给每个模块都加上 SpringBoot 父项目,确保模块能单独运行,所以这样会掩盖真正的父子关系,父子关系需要手动建立。

pom文件修改为

父模块pom修改:

(1)加入<packaging>pom</packaging>
(2)修改自己的<version>,可以改改版本号
(3)再加入modules来添加子模块即可
          <modules>
                <module>child1</module>

                 <module>child2</module> 

                 <module>child3</module>
            </modules>

子模块pom修改:
(4)在  <parent>这个里面修改为

        <parent>
        <groupId>org.example</groupId>
        <artifactId>playfun</artifactId>
        <version>0.0.1-SNAPSHOT</version>                //这以上三个都是父模块复制粘贴过来的
    <relativePath>../pom.xml</relativePath>                //<relativePath>:父模块的 “查找路径”,指定父模块 pom.xml 的相对路径,默认值为 ../pom.xml,表示父模块在当前目录的上一级
           </parent>

(5)再删掉自己的<groupId>org.example</groupId>                        //父模块定义 groupId(如 org.example),子模块继承后无需重复定义。子模块通过 <parent> 标签引用父模块的 groupId,确保依赖一致。
(6)再删掉自己的<version>,父模块定义的版本(如 0.0.1-SNAPSHOT),子模块在继承后无需重复定义
(7)保留自己的<artifactId>,这是身份证后缀,它与 groupId 组合成完整的项目坐标。父模块和子模块的 artifactId 必须唯一(如父模块 playfun,子模块 child1)
(8)<!--child1里面如果要用child2的功能,就引入child2的id ,但是child1如果用child3,而child2已经有child3,则根据依赖具有传递性,child1不需要再引入child3。并且最好是单向依赖,不要1引入2然后2又引入1,这会造成循环依赖-->
    <dependency>
      <groupId>父亲的groupId</groupId>
        <artifactId>其他要用的子模块的id</artifactId>
        <version>父亲的version</version>
    </dependency>

然后就结束了,恭喜你,springboot的项目模块拆分完成。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐