本博文参考官方文档总结
使用Spring Boot(本文使用Maven做依赖管理)
1. 启动方式分为2种
- 1.1 继承父级启动
在项目的pom.xml
设置继承自 spring-boot-starter-parent
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
使用这样的配置,你也可以在你自己的项目中通过重写一个属性来覆盖单个依赖。例如,要升级到另一个Spring Data 的版本系列,你可以将下面的内容添加到你的pom.xml
<properties>
<spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
</properties>
- 1.2 不使用父POM使用SpringBoot
不是每一个人都喜欢继承自spring-boot-starter-parent
的POM,你可能有自己需要去使用并继承的父POM,或者你可能更喜欢明确声明你的Maven配置,则可以使用一下的配置
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.4.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
使用这样的配置,不允许你使用上面解释的使用一个属性的方式来覆盖单个依赖。为了达到同样的效果,您必须添加一个
dependencyManagement
入口。例如,要升级到另一个Spring Data 的版本系列,你可以将下面的内容添加到你的pom.xml
<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>1.4.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2. 修改Java版本号
spring-boot=starter-parent
会选择相对保守的Java兼容性,如果您想遵守我们的建议,并使用一个相对较新的Java版本,您可以添加一个 java.version
属性:
<properties>
<java.version>1.8</java.version>
</properties>
3. 使用 Spring Boot Maven 插件
Spring-Boot
包含了一个Maven插件,允许我们将工程打包成一个可执行的jar包。如果您想要使用它,请将插件添加到您的 <plugins>
部分中:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
开始使用
入门程序是一组方便的依赖关系描述符,你可以包含在你的应用程序中。您无需通过示例代码和复制粘贴依赖关系描述就可以获得您所需要的所有关于Spring和相关技术的一站式服务。例如,如果你想要开始使用Spring和JPA做数据访问,只需要在您的项目中包含 spring-boot-start-data-jpa
,您就可以开始使用了。
入门程序包括了许多您需要去快速创建和运行的依赖,并使用一致的受支持的传递依赖。
所有 官方的 开始者们都遵循类似的命名模式;
spring-boot-starter-*
,其中*是特定类型的应用程序。这个命名结构旨在在你需要查找一个启动程序的时候提供帮助。许多IDE中的Maven集成允许您通过名字来搜寻依赖。例如,在安装了相应的Eclipse或者STS插件以后,您可以简单地在POM编辑器中通过按Ctrl-Space
并输入spring-boot-starter
来获取完整的列表。正如创建自己的启动器部分的描述相同,第三方启动器不应该以
spring-boot
启动,因为它预留了官方的 Spring Boot 工件。acme的第三方启动器通常命名为acme-spring-boot-starter
。
下面的应用启动器是由Spring Boot提供的 org.springframework.boot
分组的:
Name | Description | Pom |
---|---|---|
spring-boot-starter-thymeleaf | Starter for building MVC web applications using Thymeleaf views | Pom |
spring-boot-starter-ws | Starter for using Spring Web Services. Deprecated as of 1.4 in favor of spring-boot-starter-web-services | Pom |
spring-boot-starter-data-couchbase | Starter for using Couchbase document-oriented database and Spring Data Couchbase | Pom |
spring-boot-starter-artemis | Starter for JMS messaging using Apache Artemis | Pom |
spring-boot-starter-web-services | Starter for using Spring Web Services | Pom |
spring-boot-starter-mail | Starter for using Java Mail and Spring Framework’s email sending support | Pom |
spring-boot-starter-data-redis | Starter for using Redis key-value data store with Spring Data Redis and the Jedis client | Pom |
spring-boot-starter-web | Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container | Pom |
spring-boot-starter-data-gemfire | Starter for using GemFire distributed data store and Spring Data GemFire | Pom |
spring-boot-starter-activemq | Starter for JMS messaging using Apache ActiveMQ | Pom |
spring-boot-starter-data-elasticsearch | Starter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch | Pom |
spring-boot-starter-integration | Starter for using Spring Integration | Pom |
spring-boot-starter-test | Starter for testing Spring Boot applications with libraries including JUnit, Hamcrest and Mockito | Pom |
spring-boot-starter-hornetq | Starter for JMS messaging using HornetQ. Deprecated as of 1.4 in favor of spring-boot-starter-artemis | Pom |
spring-boot-starter-jdbc | Starter for using JDBC with the Tomcat JDBC connection pool | Pom |
spring-boot-starter-mobile | Starter for building web applications using Spring Mobile | Pom |
spring-boot-starter-validation | Starter for using Java Bean Validation with Hibernate Validator | Pom |
spring-boot-starter-hateoas | Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS | Pom |
spring-boot-starter-jersey | Starter for building RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web | Pom |
spring-boot-starter-data-neo4j | Starter for using Neo4j graph database and Spring Data Neo4j | Pom |
spring-boot-starter-websocket | Starter for building WebSocket applications using Spring Framework’s WebSocket support | Pom |
spring-boot-starter-aop | Starter for aspect-oriented programming with Spring AOP and AspectJ | Pom |
spring-boot-starter-amqp | Starter for using Spring AMQP and Rabbit MQ | Pom |
spring-boot-starter-data-cassandra | Starter for using Cassandra distributed database and Spring Data Cassandra | Pom |
spring-boot-starter-social-facebook | Starter for using Spring Social Facebook | Pom |
spring-boot-starter-jta-atomikos | Starter for JTA transactions using Atomikos | Pom |
spring-boot-starter-security | Starter for using Spring Security | Pom |
spring-boot-starter-mustache | Starter for building MVC web applications using Mustache views | Pom |
spring-boot-starter-data-jpa | Starter for using Spring Data JPA with Hibernate | Pom |
spring-boot-starter | Core starter, including auto-configuration support, logging and YAML | Pom |
spring-boot-starter-velocity | Starter for building MVC web applications using Velocity views. Deprecated since 1.4 | Pom |
spring-boot-starter-groovy-templates | Starter for building MVC web applications using Groovy Templates views | Pom |
spring-boot-starter-freemarker | Starter for building MVC web applications using FreeMarker views | Pom |
spring-boot-starter-batch | Starter for using Spring Batch | Pom |
spring-boot-starter-redis | Starter for using Redis key-value data store with Spring Data Redis and the Jedis client. Deprecated as of 1.4 in favor of spring-boot-starter-data-redis | Pom |
spring-boot-starter-social-linkedin | Stater for using Spring Social LinkedIn | Pom |
spring-boot-starter-cache | Starter for using Spring Framework’s caching support | Pom |
spring-boot-starter-data-solr | Starter for using the Apache Solr search platform with Spring Data Solr | Pom |
spring-boot-starter-data-mongodb | Starter for using MongoDB document-oriented database and Spring Data MongoDB | Pom |
spring-boot-starter-jooq | Starter for using jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpa or spring-boot-starter-jdbc | Pom |
spring-boot-starter-jta-narayana | Spring Boot Narayana JTA Starter | Pom |
spring-boot-starter-cloud-connectors | Starter for using Spring Cloud Connectors which simplifies connecting to services in cloud platforms like Cloud Foundry and Heroku | Pom |
spring-boot-starter-jta-bitronix | Starter for JTA transactions using Bitronix | Pom |
spring-boot-starter-social-twitter | Starter for using Spring Social Twitter | Pom |
spring-boot-starter-data-rest | Starter for exposing Spring Data repositories over REST using Spring Data REST | Pom |