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. python_程序模拟浏览器请求及会话保持

    python下读取一个页面的数据可以通过urllib2轻松实现请求 import urllib2 print urllib2.urlopen('http://www.baidu.com').read( ...

  2. java EE 环境配置(JDK + Tomcat + Eclipse for java EE)

    这学期的课程多数都是java语言的,像Java Web程序设计,java课程设计案例,所以趁周末先把软件,环境配置好. 下载JDK 先给上下载链接:http://www.oracle.com/tech ...

  3. lvm讲解/磁盘故障小案例

    4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例 lvm讲解 磁盘故障小案例

  4. 用C++做微信公众平台开发的后台开发时,用sha1加密验证的方法

    微信公众平台开发时,须要验证消息是否来自微信server,这要用到sha1加密算法.官网上给的是php的sha函数,C++中要用到以下这个函数: 一.引入头文件: #include<openss ...

  5. 小程序实现textarea随输入的文字行数变化高度自动增加

    参考链接:https://blog.csdn.net/liuwengai/article/details/78987957 该实现方法是根据上面的链接改编为小程序的实现,代码如下: wxml: < ...

  6. unity之UGUI屏幕分辨率調整

    1.Canvas的屬性配置: 2.Canvas Scaler的屬性配置: 3.根據不同的屏幕比例動態寫改碩放基準: public float standard_width = 800f; //初始宽度 ...

  7. VS2015常用快捷键

    1.回到上一个光标位置/前进到下一个光标位置  1)回到上一个光标位置:使用组合键“Ctrl + -”: 2)前进到下一个光标位置:“Ctrl + Shift + - ”. 2.复制/剪切/删除整行代 ...

  8. ambari HDFS-HA 回滚

    curl -u admin:admin -H "X-Requested-By: ambari" -X GET http://zwshen86:8080/api/v1/cluster ...

  9. 妙味远程课堂-JS属性

    html由属性名和属性值组成 属性读操作:获取.找到 元素.innerHtml//读取元素内的html内容 元素.属性名 案例1:点击按钮弹出文本框的内容(value值) <!DOCTYPE h ...

  10. linux环境中,ssh登录报错,Permission denied, please try again.

    问题描述: 今天早上一个同事反应一个问题,通过ssh登录一台测试机的时候,发现两个账号,都是普通账号,一个账号能够登录, 另外一个账号无法登录.问他之前有做过什么变更吗,提到的就是之前有升级过open ...