spring boot依赖
每一个spring boot的发型版本都包含了所依赖的版本,如果升级spring boot版本,其依赖也会同步更新升级。maven的用户可以通过继承spring-boot-starter-parent。其包含了一些合理的值的设置:
1. 默认设置的编译器为JDK 1.8
2. 源文件默认UTF-8编码
3. 从spring-boot-dependencies pom中继承的 Dependency Management 版本信息,在使用的时候,可以忽略其具体的版本信息。
4. 合理的资源过滤(filter)
5. 合理的插件配置
6. 对于application.properties的合理的过滤
7. 默认的配置文件接收spring的${}表达式,maven的资源过滤符被修改为@..@,可以使用maven属性resource.delimiter进行设置更改。
实现starter-parent的方式有如下两种:
1. 继承starter-parent的配置文件如下:
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
</parent>
也可以在自己的pom文件中修改指定的依赖版本信息:例如要更新 Spring Data 为另一个版本。具体代码如下
<properties>
<spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
</properties>
2. 在dependencyManagement
中加入依赖管理:如下代码所示:
<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>2.0.0.BUILD-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
(备注:type表名导入的类型为POM,scope=import:完全导入POM的依赖)
通过使用 Maven plugin 插件将其打包为一个可执行的文件:代码如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
starters
starter是应用中一系列依赖的描述,可以不用太多依赖就能获取相应的依赖包。官方给出的starter的命名方式为:spring-boot-starter-*,非官方定义的starter不应当以spring-boot-starter开始,而应当以项目工程为开始例如:thirdpartyproject-spring-boot-starter
starters的列表如下:
名称 | 描述 |
spring-boot-starter | 核心starter,包含了自动配置支持,logging以及yaml |
spring-boot-starter-activemq | 使用apache ACTIVEMQ的JMS处理STARTER |
spring-boot-starter-amqp | 使用spring AMQP以及rabbit MQ的starter |
spring-boot-starter-aop | 使用spring AOP以及APJECT J的starter |
spring-boot-starter-artemis | 使用apache Artemis作为JMS的starter |
spring-boot-starter-batch | 使用spring batch的starter |
spring-boot-starter-cache | 支持spring framwork cache的starter |
spring-boot-starter-cloud-connectors | spring cloud connectors的连接云平台couchbase服务的连接器,像like Cloud Foundry 与Heroku |
spring-boot-starter-data-cassandra | 使用cassandra分布式数据库以及Spring Data Cassandra的starter |
spring-boot-starter-data-cassandra-reactive | 使用cassandra分布式数据库以及Spring Data Cassandra 反应的starter |
spring-boot-starter-data-couchbase | 使用面向对象的数据库以及Spring Data Couchbase的数据库 |
spring-boot-starter-data-couchbase-reactive | 与前面类似 |
spring-boot-starter-data-elasticsearch | 使用弹性搜索以及分析引擎spring DAta Elasticsearch |
spring-boot-starter-data-jpa | 使用hibernate的 spring JPA starter |
spring-boot-starter-data-ldap | Spring Data LDAP 的starter |
spring-boot-starter-data-mongodb | 使用mongodb的starter |
spring-boot-starter-data-mongodb-reactive | 与前面类似 |
spring-boot-starter-data-neo4j | 使用Neo4j graph database 与 Spring Data Neo4j的starter |
spring-boot-starter-data-redis | 使用key,value存储在Data Redis的数据库 |
spring-boot-starter-data-redis-reactive | 与前面类似 |
spring-boot-starter-data-rest | 通过使用spring data rest暴露在spring data repostory。 |
spring-boot-starter-data-solr | 通过使用apache solr平台的starter |
spring-boot-starter-freemarker | 通过使用freemarker的MVC web 应用的starter |
spring-boot-starter-groovy-templates | 使用groovy template创建的MVC web应用 |
spring-boot-starter-hateoas | 使用Spring MVC 与 Spring HATEOAS构建的超媒体的starter |
spring-boot-starter-integration | spring 集成starter |
spring-boot-starter-jdbc | 使用tomcat的jdbc的连接池链接JDBC的starter |
spring-boot-starter-jersey | 使用JAX-RS 与 Jersey构建的web应用程序,也可以使用spring-boot-starter-web |
spring-boot-starter-jooq | 使用jooq链接数据库的starter,其可以替换为:spring-boot-starter-jdbc或者是spring-boot-starter-data-jpa |
spring-boot-starter-json | 读或者写json的starter |
spring-boot-starter-jta-atomikos | 使用atomikos的JTA事务starter |
spring-boot-starter-jta-bitronix | 使用bitronix的事务starter |
spring-boot-starter-jta-narayana | 使用narayana的JTA事务starter |
spring-boot-starter-mail | 使用jmail与spring framwork 支持的方式发送邮件 |
spring-boot-starter-mustache | shiyong mustache创建对应的web应用 |
spring-boot-starter-quartz | 定时调用的starter |
spring-boot-starter-security | 安全的starter |
spring-boot-starter-test | 测试的starter |
spring-boot-starter-thymeleaf | 使用thymeleaf构建MVC web应用的starter |
spring-boot-starter-validatior | 通过使用hibernate验证器验证的starter |
spring-boot-starter-web | 使用tomcat作为默认容器构建包括的restful,使用MVC的web应用的starter |
spring-boot-starter-web-services | 使用web services的starter |
spring-boot-starter-webflux | 使用 Spring Framework’s Reactive Web support支持的方式构建WebFlux 应用 |
spring-boot-starter-websocket | 通过使用Spring Framework’s WebSocket support构建dewebsocker的starter |
通过以下starter可以监控和管理应用:
spring-boot-starter-actuator | 提供生产的一些特性来进行监控和管理的starter |
文档参考地址:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference