spring boot是通过在pom.xml中一个个的依赖相应的整合包,达到开箱即用,插件式的方便的获取spring及相关技术的一站式服务。
如果作为一个maven项目,spring boot 默认继承spring-boot-starter-parent的项目作为自己的父项目。spring-boot-starter-parent默认编译级别为java1.6,源码编码为UTF-8
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.BUILD-SNAPSHOT</version>
</parent>
如果需要在自己的项目中覆盖项目的属性,可以通过properties节点来覆盖,比如修改java 版本,输入输出格式编码
<properties>
<spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
spring boot还包含一个maven插件,如果是使用eclipse安装spring boot tool的情况下,选择maven项目创建,该插件便会嵌入pom.xml文件中,在< plugins>节点处
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Starters是一个依赖描述符的集合,你可以将它包含进项目中,这样添加依赖就非常方便。你可以获取所有Spring及相关技术的一站式服务,而不需要翻阅示例代码,拷贝粘贴大量的依赖描述符。该starters包含很多搭建,快速运行项目所需的依赖,并提供一致的,可管理传递性的依赖集。
starters统一以spring-boot-starter-*作为maven依赖中artifactId,统一以org.springframework.boot作为groupId,只需要在< dependencies>中包含指定starter的依赖就可以用到该jar包相关的spring技术
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
使用eclipse安装spring boot tool穿件maven项目,默认有两个依赖,
- spring-boot-starter
- spring-boot-starter-test
spring-boot-starter是一个starter的集合,又依赖了
- spring-boot
- spring-boot-autoconfigure
- spring-boot-starter-logging
- javax.anonotation-api
- spring-core等一系列jar包
spring boot的starters可以大体分为三类
- Spring Boot application starters–常用
- Spring Boot生产级starters
- Spring Boot技术性starters
Spring Boot application starters
名称 | 描述 |
---|---|
spring-boot-starter-test | 用于测试Spring Boot应用,支持常用测试类库,包括JUnit, Hamcrest和Mockito |
spring-boot-starter-mobile | 用于使用Spring Mobile开发web应用 |
spring-boot-starter-social-twitter | 对使用Spring Social Twitter的支持 |
spring-boot-starter-cache | 用于使用Spring框架的缓存支持 |
spring-boot-starter-activemq | 用于使用Apache ActiveMQ实现JMS消息 |
spring-boot-starter-jta-atomikos | 用于使用Atomikos实现JTA事务 |
spring-boot-starter-aop | 用于使用Spring AOP和AspectJ实现面向切面编程 |
spring-boot-starter-web | 用于使用Spring MVC构建web应用,包括RESTful。Tomcat是默认的内嵌容器 |
spring-boot-starter-data-elasticsearch | 用于使用Elasticsearch搜索,分析引擎和Spring Data Elasticsearch |
spring-boot-starter-jdbc | 对JDBC的支持(使用Tomcat JDBC连接池) |
spring-boot-starter-batch | 对Spring Batch的支持 |
spring-boot-starter-social-facebook | 用于使用Spring Social Facebook |
spring-boot-starter-web-services | 对Spring Web服务的支持 |
spring-boot-starter-jta-narayana | Spring Boot Narayana JTA Starter |
spring-boot-starter-thymeleaf | 用于使用Thymeleaf模板引擎构建MVC web应用 |
spring-boot-starter-mail | 用于使用Java Mail和Spring框架email发送支持 |
spring-boot-starter-jta-bitronix | 用于使用Bitronix实现JTA事务 |
spring-boot-starter-data-mongodb | 用于使用基于文档的数据库MongoDB和Spring Data MongoDB |
spring-boot-starter-validation | 用于使用Hibernate Validator实现Java Bean校验 |
spring-boot-starter-jooq | 用于使用JOOQ访问SQL数据库,可使用spring-boot-starter-data-jpa或spring-boot-starter-jdbc替代 |
spring-boot-starter-redis | 用于使用Spring Data Redis和Jedis客户端操作键-值存储的Redis,在1.4中已被spring-boot-starter-data-redis取代 |
spring-boot-starter-data-cassandra | 用于使用分布式数据库Cassandra和Spring Data Cassandra |
spring-boot-starter-hateoas | 用于使用Spring MVC和Spring HATEOAS实现基于超媒体的RESTful web应用 |
spring-boot-starter-integration | 用于使用Spring Integration |
spring-boot-starter-data-solr | 通过Spring Data Solr使用Apache Solr搜索平台 |
spring-boot-starter-freemarker | 用于使用FreeMarker模板引擎构建MVC web应用 |
spring-boot-starter-jersey | 用于使用JAX-RS和Jersey构建RESTful web应用,可使用spring-boot-starter-web替代 |
spring-boot-starter | 核心starter,包括自动配置支持,日志和YAML |
spring-boot-starter-data-couchbase | 用于使用基于文档的数据库Couchbase和Spring Data Couchbase |
spring-boot-starter-artemis | 使用Apache Artemis实现JMS消息 |
spring-boot-starter-cloud-connectors | 对Spring Cloud Connectors的支持,用于简化云平台下(例如Cloud Foundry 和Heroku)服务的连接 |
spring-boot-starter-social-linkedin | 用于使用Spring Social LinkedIn |
spring-boot-starter-velocity | 用于使用Velocity模板引擎构建MVC web应用,从1.4版本过期 |
spring-boot-starter-data-rest | 用于使用Spring Data REST暴露基于REST的Spring Data仓库 |
spring-boot-starter-data-gemfire | 用于使用分布式数据存储GemFire和Spring Data GemFire |
spring-boot-starter-groovy-templates | 用于使用Groovy模板引擎构建MVC web应用 |
spring-boot-starter-amqp | 用于使用Spring AMQP和Rabbit MQ |
spring-boot-starter-hornetq | 用于使用HornetQ实现JMS消息,被spring-boot-starter-artemis取代 |
spring-boot-starter-ws | 用于使用Spring Web服务,被spring-boot-starter-web-services取代 |
spring-boot-starter-security | 对Spring Security的支持 |
spring-boot-starter-data-redis | 用于使用Spring Data Redis和Jedis客户端操作键—值数据存储Redis |
spring-boot-starter-websocket | 用于使用Spring框架的WebSocket支持构建WebSocket应用 |
spring-boot-starter-mustache | 用于使用Mustache模板引擎构建MVC web应用 |
spring-boot-starter-data-neo4j | 用于使用图数据库Neo4j和Spring Data Neo4j |
spring-boot-starter-data-jpa | 用于使用Hibernate实现Spring Data JPA |