Maven高级之分模块开发----抽取Dao层

325 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

Maven高级之分模块开发

1 分模块开发

1.1 分模块开发设计

(1)按照功能拆分

我们现在的项目都是在一个模块中,比如前面的SSM整合开发。虽然这样做功能也都实现了,但是也存在了一些问题,我们拿银行的项目为例来聊聊这个事。

  • 网络没有那么发达的时候,我们需要到银行柜台或者取款机进行业务操作
  • 随着互联网的发展,我们有了电脑以后,就可以在网页上登录银行网站使用U盾进行业务操作
  • 再来就是随着智能手机的普及,我们只需要用手机登录APP就可以进行业务操作

上面三个场景出现的时间是不相同的,如果非要把三个场景的模块代码放入到一个项目,那么当其中某一个模块代码出现问题,就会导致整个项目无法正常启动,从而导致银行的多个业务都无法正常班理。所以我们会==按照功能==将项目进行拆分。

(2)按照模块拆分

比如电商的项目中,有订单和商品两个模块,订单中需要包含商品的详细信息,所以需要商品的模型类,商品模块也会用到商品的模型类,这个时候如果两个模块中都写模型类,就会出现重复代码,后期的维护成本就比较高。我们就想能不能将它们公共的部分抽取成一个独立的模块,其他模块要想使用可以像添加第三方jar包依赖一样来使用我们自己抽取的模块,这样就解决了代码重复的问题,这种拆分方式就说我们所说的==按照模块==拆分。

1.2.3 抽取Dao层

步骤1:创建新模块

创建一个名称为maven_04_dao的jar项目

1630773580067.png

步骤2:项目中创建dao包

maven_04_dao项目中创建com.itheima.dao包,并将maven_02_ssm中BookDao类拷贝到该包中

1630773595505.png

1630773695062.png

maven_04_dao中会有如下几个问题需要解决下:

1630773958756.png

  • 项目maven_04_dao的BookDao接口中Book类找不到报错

    • 解决方案在maven_04_dao项目的pom.xml中添加maven_03_pojo项目

      <dependencies>
          <dependency>
              <groupId>com.itheima</groupId>
              <artifactId>maven_03_pojo</artifactId>
              <version>1.0-SNAPSHOT</version>
          </dependency>
      </dependencies>
      
  • 项目maven_04_dao的BookDao接口中,Mybatis的增删改查注解报错

    • 解决方案在maven_04_dao项目的pom.xml中添加mybatis的相关依赖

      <dependencies>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>3.5.6</version>
          </dependency>
      ​
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>5.1.47</version>
          </dependency>
      </dependencies>
      
步骤3:删除原项目中的dao包

删除Dao包以后,因为maven_02_ssm中的BookServiceImpl类中有使用到Dao的内容,所以需要在maven_02_ssm的pom.xml添加maven_04_dao的依赖

<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven_04_dao</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

此时在maven_02_ssm项目中就已经添加了maven_03_pojomaven_04_dao

1630774696344.png

再次对maven_02_ssm项目进行编译,又会报错,如下:

1630774780211.png

和刚才的错误原因是一样的,maven在仓库中没有找到maven_04_dao,所以此时我们只需要将maven_04_dao安装到Maven的本地仓库即可。

步骤4:将项目安装到本地仓库

将需要被依赖的项目maven_04_dao,使用maven的install命令,把其安装到Maven的本地仓库中。

1630774917743.png

安装成功后,在对应的路径下就看到了安装好对应的jar包

1630774946856.png

当再次执行maven_02_ssm的compile的指令后,就已经能够成功编译。

1.2.4 运行测试并总结

将抽取后的项目进行运行,测试之前的增删改查功能依然能够使用。

所以对于项目的拆分,大致会有如下几个步骤:

(1) 创建Maven模块

(2) 书写模块代码

分模块开发需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分。拆分方式可以按照功能拆也可以按照模块拆。

(3)通过maven指令安装模块到本地仓库(install 指令)

团队内部开发需要发布模块功能到团队内部可共享的仓库中(私服),私服我们后面会讲解。