• springbootstarterparent的作用


    我们SpringBoot项目pom文件中都会引入spring-boot-starter-parent这样一个依赖,如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.ruoyi</groupId>
        <artifactId>ruoyi</artifactId>
        <version>2.2.0</version>
        <packaging>jar</packaging>
    
        <name>ruoyi</name>
        <url>http://www.ruoyi.vip</url>
        <description>若依管理系统</description>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.1.RELEASE</version>
            <relativePath />
        </parent>
    </project>

    那spring-boot-starter-parent的作用是什么呢?

    其实从字面意思上看是spring-boot-starter的一个parent,那就是引入和定义starter相关的东西。

    具体来看可以分为以下两点:

    一、统一定义配置:

    spring-boot-starter-parent代码如下,定义编码、java版本等:

     <properties>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
            <resource.delimiter>@</resource.delimiter>
            <maven.compiler.source>${java.version}</maven.compiler.source>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.target>${java.version}</maven.compiler.target>
        </properties>

    二、统一依赖及版本:

    spring-boot-starter-parent代码如下:

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.1.RELEASE</version>
            <relativePath>../../spring-boot-dependencies</relativePath>
        </parent>

    spring-boot-dependencies代码如下:

      <dependencyManagement>
            <dependencies>
               <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot</artifactId>
                    <version>2.1.1.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-redis</artifactId>
                    <version>2.1.1.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-quartz</artifactId>
                    <version>2.1.1.RELEASE</version>
                </dependency>
    </dependencyManagement>

    <dependencyManagement>中定义了非常多指定版本的依赖,比如上述的redis、quartz等,这样在具体开发的模块中只需按以下方式引入依赖即可,不必指定版本:

          <!-- redis 缓存操作 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
            <!-- 定时任务 -->
        <dependency>
               <groupId>org.quartz-scheduler</groupId>
               <artifactId>quartz</artifactId>
        </dependency>

    为什么不必指定版本,参考https://www.cnblogs.com/silenceshining/p/14295807.html

  • 相关阅读:
    SL版优酷蛋幕视频基本组成(一)
    C++符号优先级
    静态与非静态对程序效率的影响
    SQLite语法备忘录
    优酷
    通过终端,查看SQLITE3的存储文件
    ASP.NET (C#开发环境)Request对象 之 ServerVariables集合
    SQL高级查询
    SQL Server定时执行SQL语句
    保存Session不过期和web.config 中SessionState的配置
  • 原文地址:https://www.cnblogs.com/silenceshining/p/16041854.html
Copyright © 2020-2023  润新知