SpringBoot 启动器 介绍及其作用

Spring Boot应用启动器基本的一共有44种,具体如下:

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-gemfire 
支持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-mongodb。

13)spring-boot-starter-data-rest 
通过spring-data-rest-webmvc,支持通过REST暴露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。

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

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

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

最后,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)。

原理

首先说说原理,我们知道使用一个公用的starter的时候,只需要将相应的依赖添加的Maven的配置文件当中即可,免去了自己需要引用很多依赖类,并且SpringBoot会自动进行类的自动配置。那么 SpringBoot 是如何知道要实例化哪些类,并进行自动配置的呢? 下面简单说一下。

第一步,SpringBoot 在启动时会去依赖的starter包中寻找 resources/META-INF/spring.factories 文件,然后根据文件中配置的Jar包去扫描项目所依赖的Jar包,这类似于 Java 的 SPI 机制。

第二步,根据 spring.factories配置加载AutoConfigure类。

最后,根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context 上下文当中。

我们也可以使用@ImportAutoConfiguration({MyServiceAutoConfiguration.class}) 指定自动配置哪些类。

posted @ 2021-06-20 11:03  哈尔的卡西法  阅读(734)  评论(0)    收藏  举报