当前位置:   article > 正文

springboot的依赖和自动配置_宝蓝德依赖下载

宝蓝德依赖下载

在上节中已经介绍了如何搭建Spring Boot工程,下面需要讨论它为什么在很少的配置下就能够运行。下面以最常用的Spring MVC为例进行说明。首先打开Maven的本地仓库,找到对应Spring Boot的文件夹,可以看到下图所示的目录。

这里先谈spring-boot-start-web的内容,未来还会谈到spring-boot-autoconfigure文件夹的内容。打开spring-boot-start-web文件夹,就可以看到一个名为spring-boot- starter-web-2.0.0.RELEASE.pom的文件,打开它就可以看到如下代码清单所示的代码。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4. <!-- This module was also published with a richer model, Gradle metadata, -->
  5. <!-- which should be used instead. Do not delete the following line which -->
  6. <!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
  7. <!-- that they should prefer consuming it instead. -->
  8. <!-- do_not_remove: published-with-gradle-metadata -->
  9. <modelVersion>4.0.0</modelVersion>
  10. <groupId>org.springframework.boot</groupId>
  11. <artifactId>spring-boot-starter-web</artifactId>
  12. <version>2.4.2</version>
  13. <name>spring-boot-starter-web</name>
  14. <description>Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container</description>
  15. <url>https://spring.io/projects/spring-boot</url>
  16. <organization>
  17. <name>Pivotal Software, Inc.</name>
  18. <url>https://spring.io</url>
  19. </organization>
  20. <licenses>
  21. <license>
  22. <name>Apache License, Version 2.0</name>
  23. <url>https://www.apache.org/licenses/LICENSE-2.0</url>
  24. </license>
  25. </licenses>
  26. <developers>
  27. <developer>
  28. <name>Pivotal</name>
  29. <email>info@pivotal.io</email>
  30. <organization>Pivotal Software, Inc.</organization>
  31. <organizationUrl>https://www.spring.io</organizationUrl>
  32. </developer>
  33. </developers>
  34. <scm>
  35. <connection>scm:git:git://github.com/spring-projects/spring-boot.git</connection>
  36. <developerConnection>scm:git:ssh://git@github.com/spring-projects/spring-boot.git</developerConnection>
  37. <url>https://github.com/spring-projects/spring-boot</url>
  38. </scm>
  39. <issueManagement>
  40. <system>GitHub</system>
  41. <url>https://github.com/spring-projects/spring-boot/issues</url>
  42. </issueManagement>
  43. <dependencies>
  44. <dependency>
  45. <!----springboot依赖----->
  46. <groupId>org.springframework.boot</groupId>
  47. <artifactId>spring-boot-starter</artifactId>
  48. <version>2.4.2</version>
  49. <scope>compile</scope>
  50. </dependency>
  51. <dependency>
  52. <!----json依赖----->
  53. <groupId>org.springframework.boot</groupId>
  54. <artifactId>spring-boot-starter-json</artifactId>
  55. <version>2.4.2</version>
  56. <scope>compile</scope>
  57. </dependency>
  58. <dependency>
  59. <!----tomcat依赖----->
  60. <groupId>org.springframework.boot</groupId>
  61. <artifactId>spring-boot-starter-tomcat</artifactId>
  62. <version>2.4.2</version>
  63. <scope>compile</scope>
  64. </dependency>
  65. <dependency>
  66. <!----spring-web依赖----->
  67. <groupId>org.springframework</groupId>
  68. <artifactId>spring-web</artifactId>
  69. <version>5.3.3</version>
  70. <scope>compile</scope>
  71. </dependency>
  72. <dependency>
  73. <!----pring-webmvc依赖----->
  74. <groupId>org.springframework</groupId>
  75. <artifactId>spring-webmvc</artifactId>
  76. <version>5.3.3</version>
  77. <scope>compile</scope>
  78. </dependency>
  79. </dependencies>
  80. </project>

代码中的中文注释是我加入的。从这里可以看出,当加入spring-boot-starter-web后,它会通过Maven将对应的资源加载到我们的工程中,这样便能够形成依赖。但是这样还不足以运行Spring MVC项目,要运行它还需要对Spring MVC进行配置,让它能够生产Spring MVC所需的对象,才能启用Spring MVC,所以还需要进一步探讨。

为了探讨Spring MVC在Spring Boot自动配置的问题,首先在本地下载的Maven仓库的目录spring-boot-autoconfigure中找到spring-boot-autoconfigure-2.0.0.RELEASE-sources.jar的包。它是一个源码包,把它解压缩出来,打开它目录下的子目录org\springframework\boot\autoconfigure\web\servlet后,我们就可以看到许多配置类,如下图所示。

这里可以看到存在很多的类,其中加框的类DispatcherServletAutoConfiguration就是一个对DispatcherServlet进行自动配置的类。截取DispatcherServletAutoConfiguration源码中的一个内部类DispatcherServletConfiguration对Spring Boot的自动配置做最基本的讲解,如代码清单2-3所示。

注意上述代码中加粗注解的注释,这些中文注释是我加入的,为的是更好地说明Spring Boot的自动配置功能。通过上面的代码,可以看到Spring Boot内部已经自动为我们做了很多关于DispatcherServlet的配置,其中的@EnableConfigurationProperties还能够在读取配置内容的情况下自动生成Spring MVC所需的类,有关这些内容的讨论可以参考附录。到这里,应该明白为什么几乎在没有任何配置下就能用Spring Boot启动Spring MVC项目,这些都是Spring Boot通过Maven依赖找到对应的jar包和嵌入的服务器,然后使用默认自动配置类来创建默认的开发环境。但是有时候,我们需要对这些默认的环境进行修改以适应个性化的要求,这些在Spring Boot中也是非常简单的,正如@EnableConfigurationProperties注解那样,它允许读入配置文件的内容来自定义自动初始化所需的内容,下节将探讨这个问题

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/615337
推荐阅读
相关标签
  

闽ICP备14008679号