第一天商城项目

复盘

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 标签。

相关推荐
nlog3n1 小时前
Java策略模式详解
java·bash·策略模式
Qlittleboy1 小时前
windows如何安装wkhtmltoimage 给PHP使用根据HTML生成图片
开发语言·windows·php
水w2 小时前
【Android Studio】解决报错问题Algorithm HmacPBESHA256 not available
android·开发语言·android studio
冷琅辞3 小时前
Elixir语言的云计算
开发语言·后端·golang
Mryan20053 小时前
解决GraalVM Native Maven Plugin错误:JAVA_HOME未指向GraalVM Distribution
java·开发语言·spring boot·maven
Naomi5213 小时前
自定义汇编语言(Custom Assembly Language) 和 Unix & Git
服务器·开发语言·git·unix
烂蜻蜓4 小时前
C 语言命令行参数:让程序交互更灵活
c语言·开发语言·交互
VX_CXsjNo14 小时前
免费送源码:Java+SSM+Android Studio 基于Android Studio游戏搜索app的设计与实现 计算机毕业设计原创定制
java·spring boot·spring·游戏·eclipse·android studio·android-studio
zm-v-159304339864 小时前
解锁 DeepSeek 与 Matlab:攻克科研难题的技术利刃
开发语言·matlab·信息可视化
ylfhpy4 小时前
Java面试黄金宝典33
java·开发语言·数据结构·面试·职场和发展·排序算法