关于springboot项目的结构

2. 关于Spring Boot项目的结构

通过IntelliJ IDEA创建的Spring Boot项目,默认的项目结构:

  • [.idea]:是IntelliJ IDEA管理项目时自动生成的一些文件,其中将包括你在使用过程中的一些配置,此文件夹不需要手动管理,如果开发过程中,出现莫名其妙的错误(例如某个文件确实是存在的,但是提示找不到),可以选择删除此文件夹并重启IntelliJ IDEA,当然,删除此文件夹可能会丢失你在使用过程中的一些配置(例如配置的Database面板)

  • [.mvn]:用于存放支持执行Maven相关命令的文件,此文件夹不需要手动管理

  • [src]:项目的源代码文件夹

  • .gitignore:此文件名的意思是“git ignore”,用于配置使用GIT时忽略的文件或文件夹

  • HELP.md:默认的项目描述文件,也可以改名为README.md,通常用于编写项目的介绍,例如这是一个什么样的项目、此项目应该如何启动、使用过程中有哪些注意事项等,是由开发者自行编写的,并且,在大多数GIT平台上,在项目的主页默认为显示此文件的内容

  • 项目名称.iml:IntelliJ IDEA管理此模块的文件,此文件不需要手动管理

  • mvnwmvnw.cmd:执行Maven命令的程序文件

  • pom.xml:Maven配置文件,主要用于配置:当前项目的父级项目、当前项目的基本信息、依赖项、插件等

3. 关于pom.xml的配置

3.1. 关于<relativePath>标签

关于<parent>标签子级的<relativePath/>标签,其作用是:指定父级项目的pom.xml相对当前项目的位置,关于此项目有3种做法:

  • 不写这个标签:从当前项目的文件夹的父级文件夹下查找,相当于配置为<relativePath>../pom.xml</relativePath>

  • 使用空标签(<relativePath/>):将从本地库(通常是你的.m2/repository)查找父级项目的pom.xml

  • 自定义父级pom.xml的位置,例如:<relativePath>父级pom.xml的位置</relativePath>

需要注意:<relativePath/>标签只会影响项目打包,如果你不需要对项目进行打包,此标签的配置并不重要!在IntelliJ IDEA中直接运行项目并不受到此标签的影响!

3.2. 关于<dependencies>标签

当使用聚合的Maven项目时,在父级项目的pom.xml中,根标签下的<dependencies>标签下配置的依赖项,将被各子级模块项目直接继承得到!即:只要在父级项目中配置的依赖项,子级项目中并不需要配置,就可以直接得到这些依赖项!

3.3. 关于<dependencyManagement>标签

使用<dependencyManagement>标签主要用于在父级项目中配置各依赖项的版本,并且,在子级项目中添加依赖时不配置版本号,使得同一个父级项目的各子级项目均使用相同版本的依赖项。

在父级项目的pom.xml中,可以自行添加<dependencyManagement>标签,在此标签下可以添加<dependencies>标签,并在其下再添加依赖项,例如:

<dependencyManagement>
    <dependencies>
        <!-- 依赖项1 -->
        <!-- 依赖项2 -->
        <!-- …… …… -->
        <!-- 依赖项n -->
    </dependencies>
</dependencyManagement>

当添加以上配置后,各子级项目并不会直接继承得到以上配置的依赖项,当子级需要某些依赖项时,仍需要在子级项目的pom.xml中通过<dependencies>进行配置,但是,不需要再填写版本号!

3.4. 关于spring-boot-maven-plugin插件

如果当前项目是需要运行的,则需要添加此插件,反之,如果当前项目是不需要运行的,则不可以添加此插件,否则,将导致打包错误!

3.5. 关于<dependency>子级的<scope>标签

<dependency>标签下,通过<scope>标签可以配置依赖项的作用域。

注意:如果没有配置<scope>则依赖项的作用域不受限

<scope>配置为test时,表示当前依赖项仅用于测试,只能在src/test下的代码中使用此依赖项,在src/main下将不可用,并且,此依赖项不会参与项目的打包

<scope>配置为runtime时,表示当前依赖项仅在运行时需要使用,编写源代码时不需要使用。

4. 添加必要的依赖项

当前项目所需的依赖项大致有:

  • spring-boot-starter-web:支持Spring MVC编程

  • spring-boot-starter-validation:支持Validation校验(检验方法的参数的基本格式)

  • spring-boot-starter-test:测试

  • lombok:简化POJO类的代码

  • mysql:mysql-connector-java / com.mysql:mysql-connector-j:MySQL数据库驱动

  • mybatis-spring-boot-starter:MyBatis整合Spring Boot编程

  • knife4j-spring-boot-starter:在线API文档

所以,在tmall-serverpom.xml中进行依赖管理:

<!-- 属性配置 -->
<properties>
    <java.version>1.8</java.version>
    <spring-boot.version>2.5.0</spring-boot.version>
    <mybatis-spring-boot.version>2.2.2</mybatis-spring-boot.version>
    <mysql.version>8.0.27</mysql.version>
    <knife4j-spring-boot.version>2.0.9</knife4j-spring-boot.version>
    <lombok.version>1.18.20</lombok.version>
</properties>
​
<!-- 依赖管理:主要用于管理各依赖项的版本 -->
<dependencyManagement>
    <!-- 多个依赖项 -->
    <dependencies>
        <!-- Spring Boot支持Spring MVC编程及相关的依赖项 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>${spring-boot.version}</version>
        </dependency>
        <!-- Spring Boot支持Validation校验的依赖项 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
            <version>${spring-boot.version}</version>
        </dependency>
        <!-- Mybatis整合Spring Boot的依赖项 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis-spring-boot.version}</version>
        </dependency>
        <!-- MySQL的依赖项 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <!-- Knife4j Spring Boot:在线API文档 -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>${knife4j-spring-boot.version}</version>
        </dependency>
        <!-- Lombok的依赖项,主要用于简化POJO类的编写 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <!-- Spring Boot支持测试的依赖项 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>${spring-boot.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

接下来,你可以在实际编写代码的项目中,按需添加各依赖项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值