Spring Boot的内置Servlet Container:

Name   Servlet Version Java Version
Tomcat8 3.1 Java 7+
Tomcat7 3.0 Java 6+
Jetty 9.3 3.1 Java 8+
Jetty9.2 3.1 Java7+
Jetty8 3.0 Java 6+
Undertow1.3 3.1 Java 7+

Depency Management:

每个版本的Spring Boot都提供了一个依赖列表,这个列表包含了你可能通过Spring Boot用到的所有的Spring模块以及第三方库,该列表可以以BOM的形式支持Maven

Bom和Starter的区别

1、集成spring-boot-starter-parent

spring-boot-starter-parent project默认是Java 1.6.Resource filtering.exec plugin、surefire、Git Commit ID、shade.

Resource filtering for application.properties 和 application.yml,以及,profile-specific file,如application-foo.properties 或 application-foo.yml。

如果不想使用Spring Boot中的默认版本,可以在<properties>覆盖相应的版本,如,想使用不同版本的Spring Data,具体如下:

<properties>
<spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
<!-- 使用 java 1.8 -->
<java.version>1.8</java.version>
</properties>

2、不继承spring-boot-starter-parent,这个时候可以使用depency management但是不能使用plugin management

<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.4..RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

注意:scope是import,而且这种情况下,不允许在<properties>覆盖相应的版本。如果要使用其他版本,需要在上面的前面添加一个完整的depency:

<dependencyManagement>
<dependencies>
<!-- Override Spring Data release train provided by Spring Boot -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>Fowler-SR2</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.4..RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

除此之外,Spring Boot还提供了一个Maven plugin:spring-boot-maven-plugin用于将项目打包成fat jar:

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

自动配置:

@Import 和 @ComponentScan 类似;
@EnableAutoConfiguration 和 @SpringBootApplication 类似;---注意,只能使用一次,建议用在primary @Configuration class上。
 
注意,自动配置永远是第二位的,一旦你配置自己的东西,那自动配置的就会被覆盖。
查看自动配置都配置了什么,以及为什么,启动应用的时候加上 --debug即可。
禁用特定的自动配置:
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

如果class不在classpath中,可以使用excludeName,然后使用全路径即可。

@SpringBootApplication 等同于默认的属性的
   --@Configuration,
   --@EnableAutoConfiguration and 
 --@ComponentScan。 
-- 注意,@ComponentScan 不能凭空使用。

使用Spring Boot在pom.xml中的配置解释:

1、spring-boot-starter

Spring Boot的核心启动器,包含了自动配置、日志和YAML

2、spring-boot-starter-actuator

帮助监控和管理应用

3、spring-boot-starter-amqp

通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol)

4、spring-boot-starter-aop

支持面向方面的编程即AOP。包括spring-aop和AspectJ

5、spring-boot-starter-artemis

通过Apache Artemis支持JMS的API(Java Message Service API)

6、spring-boot-starter-batch

支持Spring Batch,包括HSQLDB数据库

7、spring-boot-starter-cache

支持Spring的Cache抽象

8、spring-boot-starter-cloud-connectors

支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上的连接服务

9、spring-boot-starter-data-elasticsearch

支持ElasticSearch搜索和分析引擎,包括spring-data-elasticsearch

10、spring-boot-starter-data-genfire

支持GemFire分布式数据存储,包括spring-data-gemfire

11、spring-boot-starter-data-jpa

支持JPA(Java Persistence API),包括spring-data-jpa  spring-orm Hibernate

12、spring-boot-starter-data-mongodb

支持MongoDB数据库,包括spring-data-mpngodb

13、spring-boot-starter-data-rest

通过spring-data-rest-webmvc,支持通过RESR暴露Spring Data数据仓库

14、spring-boot-starter-data-solr 
   支持Apache Solr搜索平台,包括spring-data-solr。

15、spring-boot-starter-freemarker 
   支持FreeMarker模板引擎。

16、spring-boot-starter-groovy-templates 
   支持Groovy模板引擎。

17、spring-boot-starter-hateoas 
   通过spring-hateoas支持基于HATEOAS的RESTful Web服务。

18、spring-boot-starter-hornetq 
   通过HornetQ支持JMS。

19、spring-boot-starter-integration 
   支持通用的spring-integration模块。

20、spring-boot-starter-jdbc 
   支持JDBC数据库。

21、spring-boot-starter-jersey 
   支持Jersey RESTful Web服务框架。

22、spring-boot-starter-jta-atomikos 
   通过Atomikos支持JTA分布式事务处理。

23、spring-boot-starter-jta-bitronix 
   通过Bitronix支持JTA分布式事务处理。

24、spring-boot-starter-mail 
   支持javax.mail模块。

25、spring-boot-starter-mobile 
    支持spring-mobile。

26、spring-boot-starter-mustache 
   支持Mustache模板引擎。

27、spring-boot-starter-redis 
    支持Redis键值存储数据库,包括spring-redis。

28、spring-boot-starter-security 
    支持spring-security。

29、spring-boot-starter-social-facebook 
   支持spring-social-facebook

30、spring-boot-starter-social-linkedin 
   支持pring-social-linkedin

31、spring-boot-starter-social-twitter 
   支持pring-social-twitter

32、spring-boot-starter-test 
   支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块。

33、spring-boot-starter-thymeleaf 
   支持Thymeleaf模板引擎,包括与Spring的集成。

34、spring-boot-starter-velocity 
   支持Velocity模板引擎。

35、spring-boot-starter-web 
    S支持全栈式Web开发,包括Tomcat和spring-webmvc。

36、spring-boot-starter-websocket 
   支持WebSocket开发。

37、spring-boot-starter-ws 
    支持Spring Web Services。

38、Spring Boot应用启动器面向生产环境的还有2种,具体如下:

1)spring-boot-starter-actuator 
   增加了面向产品上线相关的功能,比如测量和监控。

2)spring-boot-starter-remote-shell 
   增加了远程ssh shell的支持。

39、Spring Boot应用启动器还有一些替换技术的启动器,具体如下:

1)spring-boot-starter-jetty 
    引入了Jetty HTTP引擎(用于替换Tomcat)。

2)spring-boot-starter-log4j 
    支持Log4J日志框架。

3)spring-boot-starter-logging 
   引入了Spring Boot默认的日志框架Logback。

4)spring-boot-starter-tomcat 
   引入了Spring Boot默认的HTTP引擎Tomcat。

5)spring-boot-starter-undertow 
   引入了Undertow HTTP引擎(用于替换Tomcat)。

【Spring Boot && Spring Cloud系列】Spring Boot的启动器Starter的更多相关文章

  1. spring boot 2.x 系列 —— spring boot 实现分布式 session

    文章目录 一.项目结构 二.分布式session的配置 2.1 引入依赖 2.2 Redis配置 2.3 启动类上添加@EnableRedisHttpSession 注解开启 spring-sessi ...

  2. spring boot 2.x 系列 —— spring boot 整合 redis

    文章目录 一.说明 1.1 项目结构 1.2 项目主要依赖 二.整合 Redis 2.1 在application.yml 中配置redis数据源 2.2 封装redis基本操作 2.3 redisT ...

  3. spring boot 2.x 系列 —— spring boot 整合 dubbo

    文章目录 一. 项目结构说明 二.关键依赖 三.公共模块(boot-dubbo-common) 四. 服务提供者(boot-dubbo-provider) 4.1 提供方配置 4.2 使用注解@Ser ...

  4. spring boot 2.x 系列 —— spring boot 整合 druid+mybatis

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构 项目查询用的表对应的建表语句放置在resour ...

  5. spring boot 2.x 系列 —— spring boot 整合 servlet 3.0

    文章目录 一.说明 1.1 项目结构说明 1.2 项目依赖 二.采用spring 注册方式整合 servlet 2.1 新建过滤器.监听器和servlet 2.2 注册过滤器.监听器和servlet ...

  6. spring boot 2.x 系列 —— spring boot 整合 RabbitMQ

    文章目录 一. 项目结构说明 二.关键依赖 三.公共模块(rabbitmq-common) 四.服务消费者(rabbitmq-consumer) 4.1 消息消费者配置 4.2 使用注解@Rabbit ...

  7. spring boot 2.x 系列 —— spring boot 整合 kafka

    文章目录 一.kafka的相关概念: 1.主题和分区 2.分区复制 3. 生产者 4. 消费者 5.broker和集群 二.项目说明 1.1 项目结构说明 1.2 主要依赖 二. 整合 kafka 2 ...

  8. 【Spring Boot&&Spring Cloud系列】Spring Boot配置文件

    很多的参数可以配置在application.properties或application.yml文件中 一.BANNER banner.charset=UTF-8 # Banner file enco ...

  9. 【Spring Boot&&Spring Cloud系列】提高数据库访问性能

    前言 使用关系型数据库的应用系统的性能瓶颈最终还是数据库.随着业务的迅速增长,数据量会不断增大,会逐渐暴露关系型数据库的弱点,性能会大幅度的降低 项目地址:https://github.com/And ...

随机推荐

  1. Shiro Demo

    http://www.sojson.com/shiro http://blog.csdn.net/swingpyzf/article/details/46342023/

  2. Android Notification和权限机制探讨

    近期为了在部门内做一次小型的技术分享.深入了解了一下Notification的实现原理.以及android的权限机制.在此做个记录.文章可能比較长,没耐心的话就直接看题纲吧. 先看一下以下两张图 图一 ...

  3. Console程序后台运行

    [DllImport("User32.dll", EntryPoint = "FindWindow")] private static extern IntPt ...

  4. 编译libjpeg

    本来以为编译libjpeg很容易,结果弄了半天. 先百度了下看下教程,一般是设置path,这里我也做了 我的电脑  -> 属性 -> 高级  -> 环境变量   ,添加环境变量PAT ...

  5. “A configuration with this name already exists” error in eclipse run configurations

    “A configuration with this name already exists” error in eclipse run configurations Is there a way t ...

  6. php创建文件夹

    $dir = iconv("UTF-8", "GBK", "Public/bookcover"); if (!file_exists($di ...

  7. 【WP8】自定义配置存储类

    之前在WP7升级到WP8的时候遇到配置不兼容的问题 情景:之前只有一个WP7版本,现在需要发布WP8版本,让用户可以从原来的WP7版本升级到WP8版本 一般情况下从WP7升级到WP8没什么问题 但是在 ...

  8. BarTender怎么打印公式化的三列标签

    有小伙伴在业务上有这样的需求:使用BarTender打印一行三列的标签,如下A,B,C三个并排.第一行 A1=a B1=a*2-1 C1=a*2:第二行 A2=a+1 B2=(a+1)*2-1 C2= ...

  9. 使用java启动mybatis generator

    1.java工程目录结构: |src/main/java |com.leslie.mybatis.generator |MybatisGeneratorUtil.java |src/main/reso ...

  10. mysql 连接字符串 CONCAT

    以前用SQL Server 连接字符串是用“+”,现在数据库用mysql,写个累加两个字段值SQL语句居然不支持"+",郁闷了半天在网上查下,才知道mysql里的+是数字相加的操作 ...