关于SpringBoot中spring-boot-starter-*起步依赖参考指南

1. 编写目的

最近也在琢磨SpringBoot框架,SpringBoot为开发者快速创建项目并投入实际业务开发提供了很好的捷径。此文将自己对SpringBoot中spring-boot-starter-*起步依赖理解心得进行整合,也与各位同行进行技术交流。

本文参考于SpringBoot官方2.0.2.RELEASE版本,若存在版本不同导致知识点错误,请以官方最新版本为准。 —— [ SpringBoot官方链接]

2. spring-boot-starter-*依赖介绍

spring-boot-starter-*起步依赖是SpringBoot核心之处,它提供了Spring和相关技术提供一站式服务,让开发者不在关心Spring相关配置,简化了传统的依赖注入操作,当然开发者也可通过application.properties文件自定义配置。
SpringBoot常规启动都遵循类似的命名模式spring-boot-starter-*,其中*是一种指定类型的应用程序,如spring-boot-starter-web表示应用程序依赖SpringWeb相关内容。另外,SpringBoot支持第三方插件引用,第三方启动程序通常以项目的名称开始。例如,mybatis依赖插件引用为mybatis-spring-boot-starter

3. starters起步依赖列表

以下应用程序启动程序由org.springframework下的Spring Boot提供:

3.1 Spring应用程序起步依赖

名称 描述
spring-boot-starter 核心依赖,包括auto-configuration , logging和YAML。
spring-boot-starter-activemq 支持Apache ActiveMQ启动JMS消息。
spring-boot-starter-amqp 支持Spring AMQP与Rabbit MQ组件。
spring-boot-starter-aop 支持Spring AOP、AspectJ组件。
spring-boot-starter-artemis 支持Apache Artemis嵌入式消息服务。
spring-boot-starter-batch 支持Spring Batch,一款面向Spring的批处理框架。
spring-boot-starter-cache 支持spring的缓存技术。
spring-boot-starter-cloud-connectors 支持SpringCloud连接器。
spring-boot-starter-data-jpa 支持Hibernate的Spring JPA。
spring-boot-starter-data-mongodb 支持mongodb。
spring-boot-starter-data-redis 支持redis缓存。
spring-boot-starter-data-solr 支持solr,一款比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化的框架。
spring-boot-starter-jdbc 支持jdbc连接。
spring-boot-starter-jersey 使用JAX-RS和Jersey构建RESTful web应用程序的入门框架。
spring-boot-starter-json 支持json数据的读写操作。

3.2 SpringBoot容器依赖

名称 描述
spring-boot-starter-jetty 使用Jetty作为嵌入式servlet容器。
spring-boot-starter-reactor-netty 使用reactor netty作为嵌入式反应性HTTP服务器。
spring-boot-starter-tomcat 使用tomcat作为嵌入式servlet容器。
spring-boot-starter-undertow 使用undertow作为嵌入式servlet容器。

4. 总结

当然,秉承对技术的执着,既要认可新技术的改革,也要小心求证,扬长避短。以SpringBoot为例,目前国内项目应用广泛的连接池是阿里的Druid。很遗憾,springboot暂未对该连接池提供支持,要想在springboot工程中使用阿里的连接池,你得使用springboot自定义配置(定义驱动、连接地址、用户名、密码等属性),再生成一个JavaBean,再将配置属性注入到bean中,还要注入启动加载等等系列工作,最后发现代码多了一大堆。再如,如果将SpringBoot工程部署到weblogic容器又得面临一大堆兼容问题,还好SpringBoot官方提供了补丁包。这只是简单举例,要想在大型项目中使用SpringBoot还有更长的路要走,因为大工程牵连体系庞大,需要技术兼容和稳定性也更高

小提示:SpringBoot目前支持的连接池有HikariCP、DBCP 、DBCP2 。

你可能感兴趣的:(关于SpringBoot中spring-boot-starter-*起步依赖参考指南)