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,具体如下:

  1. <properties>
  2. <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
  3. <!-- 使用 java 1.8 -->
  4. <java.version>1.8</java.version>
  5. </properties>

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

  1. <dependencyManagement>
  2. <dependencies>
  3. <dependency>
  4. <!-- Import dependency management from Spring Boot -->
  5. <groupId>org.springframework.boot</groupId>
  6. <artifactId>spring-boot-dependencies</artifactId>
  7. <version>1.4..RELEASE</version>
  8. <type>pom</type>
  9. <scope>import</scope>
  10. </dependency>
  11. </dependencies>
  12. </dependencyManagement>

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

  1. <dependencyManagement>
  2. <dependencies>
  3. <!-- Override Spring Data release train provided by Spring Boot -->
  4. <dependency>
  5. <groupId>org.springframework.data</groupId>
  6. <artifactId>spring-data-releasetrain</artifactId>
  7. <version>Fowler-SR2</version>
  8. <scope>import</scope>
  9. <type>pom</type>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-dependencies</artifactId>
  14. <version>1.4..RELEASE</version>
  15. <type>pom</type>
  16. <scope>import</scope>
  17. </dependency>
  18. </dependencies>
  19. </dependencyManagement>

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

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-maven-plugin</artifactId>
  6. </plugin>
  7. </plugins>
  8. </build>

自动配置:

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

如果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. 解决android有的手机拍照后上传图片被旋转的问题

    转至 http://blog.csdn.net/walker02/article/details/8211628 需求:做仿新浪发微博的项目,能够上传图片还有两外一个项目用到手机拍摄图片,这两个都需要 ...

  2. Wings 3D

    Wings 3D 编辑 Wings 3D 是一个开源的三维计算机图形软件.使用翼边数据库.注重于多边形建模,构思取与 Izware 的 Nendo 和 Mirai.支持多种操作系统,包括 Linux. ...

  3. Gateway/Worker模型 数据库使用示例

    From: http://www.bubuko.com/infodetail-777418.html 1.数据库配置Applications/XXX/Config/Db.php <?php na ...

  4. 谈谈如何优化MYSQL数据库查询

    1.优化数据类型 MySQL中数据类型有多种,如果你是一名DBA,正在按照优化的原则对数据类型进行严格的检查,但开发人员可能会选择他们认为最简单的方案,以加快编码速度,或者选择最明显的选择,因此,你可 ...

  5. Mybatis最入门---数据库的下载与安装

    [一步是咫尺,一步即天涯] 近期.因为工作进度调整,之前的Spring教程就先临时告一段落了,兴许找个时间继续更新,假设有那位看官想了解某个内容的,敬请留言,大家一起学习. 作为数据库工具的使用开篇. ...

  6. SharePoint 2013 页面中window/document.onload/ready 事件不能触发的解决方案

    问题1:在SharePoint 2013页面中使用Javascript 事件window/document.onload/ready时,你会发现处理onload/ready事件的代码根本不能执行. 问 ...

  7. [转]java的(PO,VO,TO,BO,DAO,POJO)类名包名解释

    java的(PO,VO,TO,BO,DAO,POJO)类名包名解释 2015-04-28 20:11 by Loull, 18 阅读, 0 评论, 收藏, 编辑 VO:值对象.视图对象 PO:持久对象 ...

  8. 【Spark】session 代替 SparkConf、SparkContext和SQLContext

    http://www.raincent.com/content-85-7196-1.html

  9. 【LSTM】Understanding-LSTMs

    http://colah.github.io/posts/2015-08-Understanding-LSTMs/

  10. 如何在eclipse中使用mvn clean install

    1.在Maven项目或者pom.xml上右键——>Run As ——>“Maven Build...”或者Run Configuration——>“Maven Build” 2.在“ ...