Spring boot 教程

Spring Boot不是一门新技术。从本质上来说,Spring Boot就是Spring,它做了一些对Spring Bean的默认配置。

我们知道spring 是居于 xml 配置加载的,对于小项目来说,配置少,容易开发,但是对于大型项目 那是很不方便的!而spirng boot 就是解决问题!

Spring Boot的理念

  • 核心理念:开箱即用,快速启动

    它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,
    让你无需手动进行配置)的理念让你的项目快速运行起来。
    使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,
    使用Spring Boot你可以不用或者只需要很少的Spring配置。
    
  • Spring Boot 优点

    1. 自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
    
    2. 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
    
    3. 命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
    
    4. Actuator:让你能够深入运行中的Spring Boot应用程序,一套究竟。
    

总之,spring boot 大量应用了自动装载,自动配置,可结合 maven 技术,引入需要的jar,

就可以直接使用,并且 spring boot 是直接main 方法启动,告别各种容器,当然并不是真正的不用了,

而是由 spring boot 帮我们代劳了! spring boot 容器使用有以下:

  • tomcat apache 开源的(默认就是这个的)

  • undertow 红帽开源, 性能是不错的 (推荐使用)

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <exclusions>
        <exclusion>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-undertow</artifactId>
    </dependency>
    
  • jetty

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
      <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
      </exclusion>
    </exclusions>
    </dependency>
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
    

默认情况下,Spring Boot会使用内置的tomcat容器去运行应用程序, 但偶尔我们也会考虑使用Jetty 或 undertow 来替代Tomcat;

spring boot 版本要求

Sping Boot Spring Framework Java Maven Gradle
Spring Boot 2.1.x
2.1.0.RELEASE Spring Framework 5.1.2.RELEASE Java 8 or 9 3.3+ 4.4+
Spring Boot 2.0.x
2.0.6.RELEASE Spring Framework 5.0.10.RELEASE Java 8 or 9 3.2+ 4.x
2.0.5.RELEASE Spring Framework 5.0.9.RELEASE 4.x
2.0.4.RELEASE Spring Framework 5.0.8.RELEASE 4
2.0.3.RELEASE Spring Framework 5.0.7.RELEASE 4
2.0.2.RELEASE Spring Framework 5.0.6.RELEASE 4
2.0.1.RELEASE Spring Framework 5.0.5.RELEASE 4
2.0.0.RELEASE Spring Framework 5.0.4.RELEASE 4
Spring Boot 1.5.x
1.5.17.RELEASE Spring Framework 4.3.20.RELEASE Java 7 3.2+ [2.9, 3.x]
1.5.16.RELEASE Spring Framework 4.3.19.RELEASE
1.5.15.RELEASE Spring Framework 4.3.18.RELEASE
1.5.14.RELEASE Spring Framework 4.3.18.RELEASE
1.5.13.RELEASE Spring Framework 4.3.17.RELEASE
1.5.12.RELEASE Spring Framework 4.3.16.RELEASE
1.5.11.RELEASE Spring Framework 4.3.15.RELEASE
1.5.10.RELEASE Spring Framework 4.3.14.RELEASE
1.5.9.RELEASE Spring Framework 4.3.13.RELEASE
1.5.8.RELEASE Spring Framework 4.3.12.RELEASE
1.5.7.RELEASE Spring Framework 4.3.11.RELEASE
1.5.6.RELEASE Spring Framework 4.3.10.RELEASE
1.5.5.RELEASE Spring Framework 4.3.10.RELEASE
1.5.4.RELEASE Spring Framework 4.3.9.RELEASE
1.5.3.RELEASE Spring Framework 4.3.8.RELEASE
1.5.2.RELEASE Spring Framework 4.3.7.RELEASE
1.5.1.RELEASE Spring Framework 4.3.6.RELEASE
1.5.0.RELEASE Spring Framework 4.3.6.RELEASE
Spring Boot 1.4.x
1.4.7.RELEASE Spring Framework 4.3.9.RELEASE Java 7 3.2+

[1.12, 2.x]

1.4.6.RELEASE Spring Framework 4.3.8.RELEASE
1.4.5.RELEASE Spring Framework 4.3.7.RELEASE
1.4.4.RELEASE Spring Framework 4.3.6.RELEASE
1.4.3.RELEASE Spring Framework 4.3.5.RELEASE
1.4.2.RELEASE Spring Framework 4.3.4.RELEASE
1.4.1.RELEASE Spring Framework 4.3.3.RELEASE
1.4.0.RELEASE Spring Framework 4.3.2.RELEASE
Spring Boot 1.3.x
1.3.8.RELEASE Spring Framework 4.2.8.RELEASE

Java 7

3.2+

[1.12, 2.x]
1.3.7.RELEASE Spring Framework 4.2.7.RELEASE 1.12+
1.3.6.RELEASE Spring Framework 4.2.7.RELEASE
1.3.5.RELEASE Spring Framework 4.2.6.RELEASE
1.3.4.RELEASE Spring Framework 4.2.6.RELEASE
1.3.3.RELEASE Spring Framework 4.1.5 or above
1.3.2.RELEASE
1.3.1.RELEASE
1.3.0.RELEASE
Spring Boot 1.2.x
1.2.8.RELEASE Spring Framework 4.1.5 or above Java 7 3.2+ 1.12+
1.2.7.RELEASE
1.2.6.RELEASE
1.2.5.RELEASE
1.2.4.RELEASE
1.2.3.RELEASE
1.2.2.RELEASE
1.2.1.RELEASE Spring Framework 4.1.3 or above Java 6
1.2.0.RELEASE