springboot

1入门

1.依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>

2.主启动类

  1. @SpringBootApplication
  2. public class DemoApplication {
  3. public static void main(String[] args) {
  4. SpringApplication.run(DemoApplication.class, args);
  5. }
  6. }

2.自动配置原理

1.SpringBoot特点

1.1 依赖管理
  • 父项目依赖管理
  1. 依赖管理
  2. <parent>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-parent</artifactId>
  5. <version>2.5.2</version>
  6. <relativePath/> <!-- lookup parent from repository -->
  7. </parent>
  8. 的父项目
  9. <parent>
  10. <groupId>org.springframework.boot</groupId>
  11. <artifactId>spring-boot-dependencies</artifactId>
  12. <version>2.5.2</version>
  13. </parent>
  • 版本仲裁
    • 不需要写版本号
    • 也有特殊没有涵盖的需要写版本号
  1. 版本仲裁 基本涵盖了开发中的依赖版本
  2. 自定义修改版本时
  3. <properties>
  4. <activemq.version>5.16.2</activemq.version>
  5. <antlr2.version>2.7.7</antlr2.version>
  6. <appengine-sdk.version>1.9.89</appengine-sdk.version>
  7. <artemis.version>2.17.0</artemis.version>
  8. <aspectj.version>1.9.6</aspectj.version>
  9. <assertj.version>3.19.0</assertj.version>
  10. <atomikos.version>4.0.6</atomikos.version>
  11. <awaitility.version>4.0.3</awaitility.version>
  12. <build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
  13. <byte-buddy.version>1.10.22</byte-buddy.version>
  14. <caffeine.version>2.9.1</caffeine.version>
  15. <cassandra-driver.version>4.11.2</cassandra-driver.version>
  16. <classmate.version>1.5.1</classmate.version>
  17. <commons-codec.version>1.15</commons-codec.version>
  18. <commons-dbcp2.version>2.8.0</commons-dbcp2.version>
  19. <commons-lang3.version>3.12.0</commons-lang3.version>
  20. <commons-pool.version>1.6</commons-pool.version>
  21. <commons-pool2.version>2.9.0</commons-pool2.version>
  22. <couchbase-client.version>3.1.6</couchbase-client.version>
  23. <db2-jdbc.version>11.5.5.0</db2-jdbc.version>
  24. <dependency-management-plugin.version>1.0.11.RELEASE</dependency-management-plugin.version>
  25. <derby.version>10.14.2.0</derby.version>
  26. <dropwizard-metrics.version>4.1.24</dropwizard-metrics.version>
  27. <ehcache.version>2.10.9.2</ehcache.version>
  28. <ehcache3.version>3.9.4</ehcache3.version>
  29. ......
  30. </properties>
  • 自定义版本号

    1. 1.查看spring-boot-dependencies中规定的当前依赖的版本所用key
    2. 2.在当前项目里重写配置 maven就近依赖
    3. <properties>
    4. <mysql.version>8.0.25</mysql.version>
    5. </properties>
  • starter场景启动器

    • 1.spring-boot-starter-*
    • 2.只要引入starter,这个场景的所有常规需要的依赖都自动引入。依赖传递原则
    • SpringBoot所有支持的场景
    • *-spring-boot-starter ,第三方开发的场景启动器
    • 所有场景启动器最底层的依赖
      1. <dependency>
      2. <groupId>org.springframework.boot</groupId>
      3. <artifactId>spring-boot-starter</artifactId>
      4. <version>2.5.2</version>
      5. <scope>compile</scope>
      6. </dependency>

1.2自动配置