SpringBoot_第三章(依赖管理)

目录

1:SpringBoot的依赖管理

1.1:依赖管理结构

2:父依赖spring-boot-starter-perent

2.1:父级标签

2.2:properties标签

2.3:resource标签

2.4:plugin插件信息

3:祖宗依赖spring-boot-dependencies

4:为什么不需要Tomcat

5:springboot的starter(启动器)

5.1:web项目的spring-boot-starter-web

5.2:需要发送邮件的Mail Starter

6:依赖管理总结


1:SpringBoot的依赖管理

在springboot项目中,简化了Spring应用的初始搭建以及开发过程,同样对jar的依赖管理也有一套自己的标准。我们创建好自己的springboot项目模板后可以看到pom文件,对需要的jar进行依赖管理,在将项目打包之后,由于项目包包含Tomcat,因此我们可以直接使用java -jar 项目包来运行项目。这些都是依赖于springboot的项目管理,下边来具体分析。

1.1:依赖管理结构

我们创建好项目,查看pom文件如下开始分析



    4.0.0
    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.14
         
    

    
    com.example
    SpringBoot2_01
    0.0.1-SNAPSHOT
    SpringBoot2_01
    SpringBoot2_01
    
        17
    
    
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
        
            org.springframework.boot
            spring-boot-starter-mail
        

        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
        
            org.projectlombok
            lombok
            true
        
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
        
            mysql
            mysql-connector-java
            8.0.33
        
    

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


分析结构:

我们在此pom中可以看到项目的父级依赖是spring-boot-starter-perent,

我们点击进入spring-boot-starter-perent

看到他还有一个父级依赖是spring-boot-dependencies 

                                 他们结构是

  -------本项目pom.xml

        ---------spring-boot-starter-perent

                   ------spring-boot-dependencies 

SpringBoot_第三章(依赖管理)_第1张图片

2:父依赖spring-boot-starter-perent

我们查看spring-boot-starter-perent,由于此过长。我们查看有效信息得知spring-boot-starter-perent没用定义jar管理的dependencyManagement标签。

它里边主要有四大标签

2.1:父级标签

这里边有匹配当前的springboot版本的依赖其他jar包的版本,便于我们直接引入相应的jar,不需要指定版本。对于没有指定的jar还是需要自己引入指定版本的。


    org.springframework.boot
    spring-boot-dependencies
    2.6.7

2.2:properties标签

此标签的作用是指定了Java的编译版本,编译编码的信息

 
    1.8
    @
    ${java.version}
    ${java.version}
    UTF-8
    UTF-8
  

2.3:resource标签

此标签的作用是制定了springboot项目的配置文件在resource下边或者其他位置。可以使yml、ymal、properties三种格式的文件


      
        ${basedir}/src/main/resources
        true
        
          **/application*.yml
          **/application*.yaml
          **/application*.properties
        
      
      
        ${basedir}/src/main/resources
        
          **/application*.yml
          **/application*.yaml
          **/application*.properties
        
      
    

2.4:plugin插件信息

该插件可以使maven直接将依赖的jar打包,可以使用java -jar跑项目了。

 
          org.springframework.boot
          spring-boot-maven-plugin
          
            
              repackage
              
                repackage
              
            
          
          
            ${start-class}
          
        

3:祖宗依赖spring-boot-dependencies

这个依赖的pom很长。这里边有各种各样的springboot依赖。主要是管理springboot不同版本对应的jar。我们可以在自己的项目中直接使用,不需要指定版本。


    
      
        org.apache.activemq
        activemq-amqp
        ${activemq.version}
      
      
        org.apache.activemq
        activemq-blueprint
        ${activemq.version}
      
      
        org.apache.activemq
        activemq-broker
        ${activemq.version}
      
      
        org.apache.activemq
        activemq-camel
        ${activemq.version}
      

        此处忽略很多,只是作为演示

      
        org.springframework.boot
        spring-boot-starter-web
        2.6.7
      
      
        org.springframework.boot
        spring-boot-starter-webflux
        2.6.7
      
      
        org.springframework.boot
        spring-boot-starter-websocket
        2.6.7
      

我们可以在自己的项目中直接使用,或者覆盖掉springboot的依赖版本管理

         
        
            org.springframework.boot
            spring-boot-starter-web
        

        
        
            mysql
            mysql-connector-java
        

4:为什么不需要Tomcat

当我们需要web模块的时候,只要引入spring-boot-starter-web

 
        
            org.springframework.boot
            spring-boot-starter-web
        

这个jar的pom中我们查看此pom中有各种依赖,依赖图可以看到spring依赖 tomcat依赖 json依赖等。 所以初步判定打包的项目中tomcat。

SpringBoot_第三章(依赖管理)_第2张图片

5:springboot的starter(启动器)

springboot的starter是各种场景启动器。我们需要使用什么功能就配置什么starter。对应的starter中有此功能支持的各种jar,官网文档有很多的启动器,不需要我们在去找对应的jar和处理版本兼容了。规范是spring-boot-starter-*

SpringBoot_第三章(依赖管理)_第3张图片

 

5.1:web项目的spring-boot-starter-web

比如web的starter。我们只需要引入jar包,就有了上边的tomcat,spring的jar和mvc的jar。就可以使用注解开发web项目了。

SpringBoot_第三章(依赖管理)_第4张图片

 

5.2:需要发送邮件的Mail Starter

我们只需要导入此jar,然后写业务代码就行了。


    org.springframework.boot
    spring-boot-starter-mail

6:依赖管理总结

所谓的依赖管理就是把各种启动器导进来,启动器会把需要的jar包和版本自动导入,开发的时候不需要自己导入jar和解决依赖冲突了

你可能感兴趣的:(框架_SpringBoot,java,spring)