📜  Spring Boot – 依赖管理

📅  最后修改于: 2022-05-13 01:55:26.329000             🧑  作者: Mango

Spring Boot – 依赖管理

Spring-Boot 框架是最流行的 Web 开发框架。毫无疑问,它提供了丰富的基本功能和处理这些功能的便捷方式。 Spring-Boot 的核心是“依赖管理”功能。

依赖管理的重要性

  • 它允许根据各自的 Spring-Boot 版本在一个地方指定所有必需的依赖项。
  • 您可以指定或更改 Spring-Boot 版本。在更改 Spring-Boot 版本时,所有提及(添加)依赖项的版本都将自动更新。
  • 您可以防止不同 Spring-Boot 库版本的冲突,这有利于“多模块”项目。

Spring-Boot中依赖管理的工作

  • 依赖关系只不过是一个“库”,它提供了我们可以在应用程序中使用的特定功能。
  • 在 Spring-Boot 中,依赖管理和自动配置同时工作。
  • 正是自动配置使管理依赖关系对我们来说非常容易。
  • 我们必须在 pom.xml/build.gradle 文件中添加依赖项。
  • 这些添加的依赖项将从 Maven Central 下载。
  • 下载的依赖项将存储到本地文件系统的“.m2”文件夹中。
  • Spring-Boot 应用程序可以从“.m2”及其子目录访问这些依赖项。
  • 示例 -( .m2 ->存储库-> org等)

Spring-Boot中依赖管理的工作

依赖管理的生命周期

Maven Central 示例——“Starter Web”依赖项

项目构建系统

  1. 您应该使用两个最常用的构建 Maven 和 Gradle。
  2. Maven 和 Gradle 使用不同的语法来管理依赖项。
  3. 此外,您无需提及依赖项的版本,因为 Spring-Boot 会自动配置它们。尽管您也可以提及版本或覆盖。
  4. 发布的精选列表包含您可以与 Spring-Boot 一起使用的所有 Spring 模块和第三方库。
  5. Maven 在 'pom.xml' 文件中管理它们,而 Gradle 在 'build.gradle' 文件中管理它们。

Maven构建的特点

  1. 它使用默认的Java编译器。
  2. 它具有 UTF-8 源编码
  3. 不提及依赖项的版本信息的一个有用功能是从 POM ( spring-boot-dependencies )继承的。
  4. 资源过滤和插件配置。
  5. 资源过滤也适用于“application.properties”和“application.yml”。

弹簧启动器

使用依赖管理,Spring-Boot Starters 在这里扮演着重要的角色。它们是一组方便的依赖描述符,应该在您的应用程序中提及。您可以访问项目所需的所有 Spring 和相关技术堆栈。启动器具有类似的命名模式 - ( spring-boot-starter-* )。第三方启动器不以“spring-boot”开头。启动模式中的星号代替要使用的任何技术名称。

Example: 'spring-boot-starter-jdbc'

启动器类型:

  1. 应用程序启动器。
  2. 技术入门。
  3. 生产就绪的启动器。

Spring-Boot 所需的所有依赖项都嵌入在“依赖项”标签/块中。

Maven -> pom.xml


     
           ... 
           ... 
           ... 
     

马文

添加依赖项

在 STS(Spring Tool Suite)中创建新的 Spring-Boot 项目时,您可以在设置项目时添加所需的依赖项。

  1. 文件
  2. 新建 -> Spring Starter 项目
  3. 下一个
  4. 搜索所需的依赖项并添加它们
  5. 下一个
  6. 结束

依赖关系选择窗口。

要为当前工作项目添加依赖项:

  1. 右键单击项目
  2. 选择 Spring -> 添加 Starters
  3. 搜索所需的依赖项并添加它们
  4. 下一个
  5. 选择 pom.xml/HELP.md 或两者
  6. 结束

出现在上述图像步骤之后

如果你知道依赖关系,你可以直接将它们放在 pom.xml 文件中。例如,要在项目构建中添加 Thymeleaf 模板引擎,可以在“ ”标签中添加以下依赖项。


    org.springframework.boot
    spring-boot-starter-thymeleaf

示例:pom.xml

XML


    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.6.3
         
    
    sia
    GFG
    0.0.1-SNAPSHOT
    GFG
    GFG
    
        11
    
    
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
            org.springframework.boot
            spring-boot-starter-web
        
  
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
    
  
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                        
                            org.projectlombok
                            lombok
                        
                    
                
            
        
    
  


了解/配置依赖关系

A - 入门父母

要利用自动配置的“合理”默认值,您应该在构建的项目中添加 Starter Parent。


    org.springframework.boot
    spring-boot-starter-parent
    ___

使用上面的默认配置,您可以通过覆盖“属性”来覆盖各自的依赖项。


    ___


This will make sure that the mentioned version of a SLF4j library will be used.

您还可以管理自动配置的“Starter Parent”并创建自定义 POM,而无需借助“spring-boot-dependencies”的工件“scope=import”指定第一个。


     
        
            org.springframework.boot
            spring-boot-dependencies
            ___
            pom
            import
        
    

在此之后,您通常可以像上面提到的那样添加依赖项。但是,要覆盖单个依赖项,您需要在“spring-boot-dependencies”条目之前添加一个相应的条目。


    
        
        
        
            org.slf4j
            slf4j-api
            ___
        
        
        
            org.springframework.boot
            spring-boot-dependencies
            ___
            pom
            import
        
    
    

但是,您必须通过显式添加“spring-boot-maven-plugin”来手动配置插件管理。管理 Maven 插件非常重要,因为它将 Spring-Boot 应用程序打包到一个可执行的 jar 中。

Maven -> pom.xml


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

B – Java版本

您还可以通过以下方式更改Java版本 -


    ___

C – 开发者工具

一组使应用程序开发过程更容易的特定工具。它位于“spring-boot-devtools”模块中。

Maven -> pom.xml


     org.springframework.boot
     spring-boot-devtools
     true

摇篮

对于 Maven 中的“Starter Parent”,这里没有“Super Parent”可以利用一些自动配置。要在 Gradle 中添加依赖项,请将它们添加到“dependencies{}”部分。为了提供可执行 jar,您可以在依赖项部分添加以下内容 -

'spring-boot-gradle-plugin'

示例 – build.gradle

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.8.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'spring-boot'

repositories {
    jcenter()
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

要添加“开发人员工具”,请在“依赖项”块中添加以下内容

Gradle -> build.gradle

developmentOnly("org.springframework.boot:spring-boot-devtools")