一,如何安装JDK, Maven,如何构建Spring Boot项目...这个不做解释。
二,假设目前我已经使用IDE成功构建了一个Spring Boot项目,构建环境JDK8,Maven3,项目名:XXX。
-
首先解释一下pom.xml 中的一项 "spring-boot-starter-parent"。
-
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
官网文档说明:
-
Spring Boot提供了一些“Starters(开胃菜)”,可让您将jar添加到类路径中。我们的示例应用程序已经在POM的parent部分使用了spring-boot-starter-parent。spring-boot-starter-parent是一个特殊的启动器,提供有用的Maven默认值。它还提供了一个 dependency-management 部分,以便您可以省略version标签中的“版本号”依赖项。
- 其他“Starters”提供了在开发特定类型的应用程序时可能需要的依赖项。由于我们正在开发Web应用程序,因此我们添加了
spring-boot-starter-web
依赖项。在此之前,我们可以通过运行以下命令来查看当前的内容 -
D:\work\lei>mvn dependency:tree [INFO] Scanning for projects... [INFO] [INFO] --------------------------< com.duanlei:lei >--------------------------- [INFO] Building lei 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-dependency-plugin:3.1.1:tree (default-cli) @ lei --- [INFO] com.duanlei:lei:jar:0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.550 s [INFO] Finished at: 2019-06-06T18:17:41+08:00 [INFO] ------------------------------------------------------------------------
mvn dependency:tree
命令打印项目依赖项的树表示。您可以看到spring-boot-starter-parent
本身不提供依赖关系。要添加必要的依赖项,请编辑pom.xml
并在parent
部分下方添加spring-boot-starter-web
依赖项:-
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
如果再次运行
mvn dependency:tree
,您会发现现在有许多其他依赖项,包括Tomcat Web服务器和Spring Boot本身。 -
如果dependencies中的一些引用不想使用默认的版本,可以直接加上version信息,把默认的覆盖掉
-
另外官方提供的覆盖默认配置的方式如下:
-
<properties> <spring-data-releasetrain.version>XXXXX.xxxx</spring-data-releasetrain.version> </properties>
三,如果不想使用spring-boot-starter-parent,也可以自己来配置所要使用的版本
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<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>
如上所述,前面的示例设置不允许您使用属性覆盖单个依赖项。如果想覆盖,您需要在spring-boot-dependencies
条目之前在项目的dependencyManagement
中添加条目。例如,要升级到另一个Spring数据发布列,您可以将以下元素添加到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>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
四,如果想要把项目打包成一个可执行的jar包,需要添加maven的一下组件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
表13.1。Spring Boot应用程序启动器
名称 | 描述 |
---|---|
| 核心启动器,包括自动配置支持,日志记录和YAML |
| 使用Apache ActiveMQ进行JMS消息传递的入门者 |
| 使用Spring AMQP和Rabbit MQ的入门者 |
| 使用Spring AOP和AspectJ进行面向方面编程的入门者 |
| 使用Apache Artemis进行JMS消息传递的入门者 |
| 使用Spring批处理的初学者 |
| 使用Spring Framework的缓存支持的初学者 |
| 使用Spring云连接器的初学者简化了与Cloud Foundry和Heroku等云平台中的服务的连接 |
| 使用Cassandra分布式数据库和Spring数据的初学者Cassandra |
| 使用Cassandra分布式数据库和Spring数据Cassandra Reactive的入门者 |
| 使用Couchbase面向文档的数据库和Spring Data Couchbase的入门者 |
| 使用Couchbase面向文档的数据库和Spring Data Couchbase Reactive的入门者 |
| 使用Elasticsearch搜索和分析引擎以及Spring Data Elasticsearch的初学者 |
| 使用Spring数据JDBC的入门者 |
| 使用Spring Data JPA和Hibernate的初学者 |
| 使用Spring数据LDAP的入门者 |
| 使用MongoDB面向文档的数据库和Spring Data MongoDB的初学者 |
| 使用MongoDB面向文档的数据库和Spring Data MongoDB Reactive的入门者 |
| 使用Neo4j图形数据库和Spring数据Neo4j的入门者 |
| 使用Spring数据Redis和Lettuce客户端使用Redis键值数据存储的入门者 |
| 使用Redis数据Redis被动和Lettuce客户端的Redis键值数据存储的入门者 |
| 使用Spring Data REST通过REST公开Spring数据存储库的入门者 |
| 使用带有Spring Data Solr的Apache Solr搜索平台的初学者 |
| 使用FreeMarker视图构建MVC Web应用程序的入门者 |
| 使用Groovy模板视图构建MVC Web应用程序的入门者 |
| 使用Spring MVC和Spring HATEOAS构建基于超媒体的RESTful Web应用程序的入门者 |
| 使用Spring Integration的入门者 |
| 将JDBC与HikariCP连接池一起使用的入门者 |
| 使用JAX-RS和Jersey构建RESTful Web应用程序的入门者。替代 |
| 使用jOOQ访问SQL数据库的初学者。替代 |
| 阅读和写作json的初学者 |
| 使用Atomikos进行JTA交易的入门者 |
| 使用Bitronix进行JTA事务的入门者 |
| 使用Java Mail和Spring Framework的电子邮件发送支持的入门者 |
| 使用Mustache视图构建Web应用程序的入门者 |
| 使用Spring安全性OAuth2 / OpenID Connect客户端功能的入门级产品 |
| 使用Spring安全性OAuth2资源服务器功能的入门者 |
| 使用Quartz调度程序的入门者 |
| 使用Spring安全性的入门者 |
| 用于测试包含JUnit,Hamcrest和Mockito等库的Spring Boot应用程序的入门者 |
| 使用Thymeleaf视图构建MVC Web应用程序的入门者 |
| 使用Java Bean验证与Hibernate Validator的初学者 |
| 使用Spring MVC构建Web(包括RESTful)应用程序的入门者。使用Tomcat作为默认嵌入式容器 |
| 使用Spring Web服务的入门者 |
| 使用Spring Framework的Reactive Web支持构建WebFlux应用程序的初学者 |
| 使用Spring Framework的WebSocket支持构建WebSocket应用程序的入门者 |