springboot项目多模块整合

记一次将项目拆分成多模块的过程

之前做的项目一直都是单模块的,直到有一次去外地出差,看到公司的一个springmvc项目把service和mapper拆分成单独的一个项目。我很是惊讶,向大哥讨教才知道是把单个项目拆分成多个模块,觉得很是高级。
前不久向松哥买了一个微人事教学资料,很巧,他的项目到后期也整合成多模块项目,于是想记录一下。

前置准备工作配置maven

如果你的项目是idea来开发并且使用的是他自带的maven,那你就去你的idea安装目录下的plugins目录下的maven目录,如果你用的maven2或者maven3,找到对应目录下的conf目录下的settings.xml,如果你使用的是自己的,也是一样,找到settings.xml
1.使用notepad++打开,定位到标签
按如下配置:

<profiles>
    <!-- profile
     | Specifies a set of introductions to the build process, to be activated using one or more of the
     | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
     | or the command line, profiles have to have an ID that is unique.
     |
     | An encouraged best practice for profile identification is to use a consistent naming convention
     | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
     | This will make it more intuitive to understand what the set of introduced profiles is attempting
     | to accomplish, particularly when you only have a list of profile id's for debug.
     |
     | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo. -->
    <profile>
      <id>jdk-1.8</id>

      <activation>
        <jdk>1.8</jdk>
      </activation>
	  <properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	  </properties>
      <!--<repositories>
        <repository>
          <id>jdk14</id>
          <name>Repository for JDK 1.4 builds</name>
          <url>http://www.myhost.com/maven/jdk14</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>-->
    </profile>

准备好之后开始改造自己项目

首先关闭idea或退出当前工程;
进入自己工程所在位置,把文件夹下的文件删的只留下src和pom.xml
我这里是已经删过了的,正常的话会有一些idea自己配置或者是maven的;
在这里插入图片描述

创建新的maven工程

不用骨架构建,直接next
在这里插入图片描述

创建好的一个新的maven项目叫vhr,然后接着创建一个子maven项目,作为服务端就叫vhrserver

在这里插入图片描述
在这里插入图片描述

在子项目vhrserver里开始创建不同的模块,我这里创建mapper、model、service还有一个web(其实就是之前的准备改造的工程),这里还有必要做一个说明,在模块改造的时候,不知道是不是因为idea太智能了还是咋地,我移进来的原工程(在这里是vhr-web)项目结构出现严重错乱,所以请各位老铁在拷贝进新工程里的时候一定要有所备份以防不测。

在这里插入图片描述

创建好之后才是麻烦的开始,你要捋清楚你原来的文件要放到新工程的哪里?当然我这个一目了然哈,model mapper service,我觉得不会有谁不知道吧?心里怎么放都有点b数的。但是最烦的就是捋清依赖关系。下面开始描述具体步骤,有些我自己遇到的坑,请留意。

首先要转移父工程位置到最外层

在这里插入图片描述

vhrserver的pom.xml里面为什么会没有vhr-web这个模块呢?

大哥解释是跟vhrserver没关系,暂时可以不加
在这里插入图片描述

开始放model

首先要创建好一个包,然后:在这里插入图片描述
去原工程把所有的model类全部拷贝进来(当然,你喜欢怎么拷贝 就怎么拷贝)
在这里插入图片描述
还有我要把spring-boot-starter-web依赖导进来,为什么呢?因为我的有些类用了他里面的注解,比如@JsonFormat不添加会爆红。还有security的依赖也要放进去,

然后开始搞mapper

也是老样子把所有的类拷贝进来,方法如上;
第二要添加依赖,因为大家知道,mapper是需要实体类的,所有这里要把实体类的依赖添加进来。

这里呢我要重点强调一件事情:
这个版本号需要锁定,如果不锁定,你将会看到满世界的红线。
锁定方法是:
选中对应的model依赖按住快捷键Ctrl+alt+空格键,会自动提示,选择就行。
在这里插入图片描述
mapper里面还要druid和mybatis的依赖,也从之前的vhr-web工程里剪切进去。

oduile,我忘记了说一件事得补充一下

因为我这里是把mapper的xml文件和类放在了一起没有放在静态目录下,所以这里我还需要在pom文件里写一个配置,让springboot识别他。

<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resource</directory>
            </resource>
        </resources>
    </build>

接着开始搞service

所有类拷贝
添加依赖,众所周知,service依赖于mapper。什么,你不知道?你没在service的类里面写过return mapper.*****吗?
所以放依赖:
在这里插入图片描述
我这里还把原本的utils包放到了service下面,所以还需要他们对应的依赖

web层(因为这里有控制层controller)所以要把service的依赖导进去

在这里插入图片描述
其余的web端不动,可能会有人问,为什么mysql的包不导入到mapper里面,他是连接数据库的关键啊,为什么要放在web里面呢?
因为mysql驱动仅仅只是在运行时生效,你放到mapper里面,其实不起任何作用。更何况我的项目里,web模块里还有一个类需要jdbc包,所有要在web模块保留mysql。

玩到这个时候,你启动自己的项目,你会发现他会报错:

在这里插入图片描述

在看maven

在这里插入图片描述
为什么会有这样的错误呢,是因为我们在操作的时候,忘记了把后导入进来的vhr-web工程添加父依赖,他无法锁定版本号。只需要添加自己父依赖就OK。

好了开始启动

在这里插入图片描述
我这里启动没有任何问题,可能到了你那,可能会提示你配置SDK啊什么的,正常配置就可以了。

第一次做项目的多模块划分,跟着教程,绕了几个弯子,在这里稍作记录,作为总结,也分享给大家。谢谢。

Author by 朝花不迟暮

在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值