第一天商城项目

复盘

1.maven高级部分聚合和继承

maven聚合工程(深度剖析)_一宿君的博客-CSDN博客

2.yml配置文件 mybatis

mybatis: mapper-locations: classpath:mappers/*mapper.xml

mapper-locations:这是一个子键,用于指定MyBatis映射文件(Mapper XML文件)的位置。在这里,classpath:mappers/*mapper.xml表示MyBatis应该在类路径下寻找所有以"mapper.xml"结尾的文件。这些XML文件通常包含SQL映射,定义了如何将Java对象映射到数据库表,以及SQL查询语句等。

type-aliases-package: com.hu.pojo

  1. 这是另一个子键,用于指定MyBatis的类型别名包(Type Aliases Package)。在这里,com.hu.pojo表示MyBatis将扫描这个包中的Java类,并将它们注册为MyBatis的类型别名。这样,你可以在映射文件中使用这些类型别名来引用Java类,而无需使用完全限定的类名。

例如,如果在com.hu.pojo包中有一个名为User的Java类,你可以在映射文件中使用User作为别名,而不必写完整的类路径,如com.hu.pojo.User

3.@MapperScan

@MapperScan 是 MyBatis Spring Boot 的注解,它用于指定 MyBatis 映射接口的扫描路径,以便 Spring Boot 能够自动创建这些接口的实

也可以在mapp层加个@mapper

4.spring-boot-starter-parent

这是一个 Maven 项目的父项目(Parent POM)配置,它定义了当前项目所继承的父项目,通常用于继承一些共享的配置和依赖。在这个例子中,父项目指定的是Spring Boot Starter Paren

解释这个配置的各部分:

  1. <parent> 元素:这是用于定义父项目的 XML 元素,它包含了子项目(当前项目)应该继承的父项目信息。

  2. <groupId>:指定了父项目的 Maven Group ID,即org.springframework.boot。这表示父项目属于 Spring Boot 组织。

  3. <artifactId>:指定了父项目的 Maven Artifact ID,即 spring-boot-starter-parent。这表示父项目的标识。

  4. <version>:指定了父项目的版本,即 2.7.15。这表示当前项目将继承 Spring Boot Starter Parent 版本2.7.15的配置和依赖。

通过继承 Spring Boot Starter Parent,你的项目可以受益于 Spring Boot 团队提供的一些共享

spring-boot-starter-parent 是 Spring Boot 提供的一个 Maven 父项目,它提供了一些默认的配置和依赖管理,可以让我们更方便地进行 Spring Boot 项目的开发。

1.聚合

聚合:聚合用于快速构建maven工程,一次性构建多个项目/模块。

创建一个空模块,pom.xml文件里添加打包类型为pom

java 复制代码
<!--定义该工程用于管理构建-->
<packaging>pom</packaging>

用 modules 标签来定义当前模块进行构建操作时关联的其他模块名称

java 复制代码
modules>
        <module>API</module>
        <module>beans</module>
        <module>mappers</module>
        <module>service</module>
        <module>API</module>
        <module>common</module>
    </modules>

创建聚合工程的要点

1.该聚合项目(父级项目、顶级项目)本身也是一个maven项目,它必须有自己的pom

2.它的打包方式必须是:pom

3.引入新的元素:modules---module(模块:每个模块其实也是一个项目)

4.版本:聚合模块的版本要和被聚合模块的版本一致

5.relative path:每个module名称都是一个当前pom的相对目录

6.目录名称:为了方便快速定位,模块所处的目录应当与其artifactId一致(maven约定而不是硬性要求),总之,模块所处的目录必须要和聚合模块中的模块目录保持一致。

7.聚合模块减少的内容:聚合模块的内容仅仅是一个pom.xml文件,它不包含src/main/java和src/test/java等目录,因为他只是用来将其他模块整合构建成一个整体的工具,本身并没有实质的内容。

8.聚合模块和子模块的目录:它们可以是父子级,也可以是平行结构(推荐)。默认是父子级结构,但是不建议使用,因为父子级是一种嵌套关系,子模块要建在父模块里面,维护起来很容易紊乱;推荐使用平行结构,是因为维护起来一目了然,条理比较清晰,当然同时要在pom文件的中修改相应的目录路径配置。

9.如果聚合模块对某一个子模块进行了删除操作,那么一定要在聚合模块的pom.xml文件中的modules选项中将对应的子模块删除掉。

2.继承

不同的模块不同人开发的时候,可能使用的资源版本不同,当整合到一起的时候可能会出现兼容上的问题。所以需要有个总的管理模块,在总的模块中去规定使用资源的版本

需要注意的是,添加依赖的时候 ,需要在声明依赖管理,声明的方法是需要在dependencies 标签外添加 dependencyManagement 标签。

相关推荐
半盏茶香26 分钟前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法
Evand J1 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
LucianaiB1 小时前
探索CSDN博客数据:使用Python爬虫技术
开发语言·爬虫·python
Ronin3051 小时前
11.vector的介绍及模拟实现
开发语言·c++
计算机学长大白2 小时前
C中设计不允许继承的类的实现方法是什么?
c语言·开发语言
suweijie7682 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
公贵买其鹿3 小时前
List深拷贝后,数据还是被串改
java
PieroPc3 小时前
Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
开发语言·python·excel
2401_857439696 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php
SoraLuna6 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos