Spring Boot使用的默认值-spring-boot-starter-parent

时间:2018-08-28 18:46:43

标签: java spring spring-boot

我只是从Spring引导开始,才知道在Spring引导中,它提供了“默认值”(约定优于配置),因此可以满足几乎80%的依赖性。

       <dependency>
          <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>${spring.boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

考虑以上版本的spring-boot-starter-parent,我如何知道我的项目将建议的默认默认Spring Boot?有没有办法找到它将选择的默认值?

有人可以帮我理解吗?

2 个答案:

答案 0 :(得分:0)

Spring Boot具有所谓的Starters。入门程序是一组方便的依赖项,可以将其包含在项目中以帮助实现某些目标。

启动程序包括自动配置支持,日志记录和YAML。

对于安全性,数据(jpa),mongodb等,有一些入门。

您可以在这里看看:https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/htmlsingle/#using-boot-starter

答案 1 :(得分:0)

您可以使用两个内置的Maven目标来获取有关pom中依赖项和继承的事物的信息:

第一个专注于依赖关系(及其起源),第二个专注于经过依赖关系(和配置文件)解析的结果pom.xml。

此外,Spring Boot依赖于some common properties with sometimes default values


请注意,可以通过指定要分析的工件来使用这些maven目标。
例如,要获取org.springframework.boot:spring-boot-starter-parent:2.0.0.RELEASE依赖项的有效pom,请运行它:

mvn org.apache.maven.plugins:maven-help-plugin:3.1.0:effective-pom -Dartifact=org.springframework.boot:spring-boot-starter-parent:2.0.0.RELEASE

它将输出类似:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
  </parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.0.0.RELEASE</version>
  <packaging>pom</packaging>
  <name>Spring Boot Starter Parent</name>
  <description>Parent pom providing dependency and plugin management for applications
        built with Maven</description>
  <url>https://projects.spring.io/spring-boot/#/spring-boot-starter-parent</url>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0</url>
    </license>
  </licenses>
  <developers>
    <developer>
      <name>Pivotal</name>
      <email>info@pivotal.io</email>
      <organization>Pivotal Software, Inc.</organization>
      <organizationUrl>http://www.spring.io</organizationUrl>
    </developer>
  </developers>
  <scm>
    <url>https://github.com/spring-projects/spring-boot/spring-boot-starter-parent</url>
  </scm>
  <properties>
    <activemq.version>5.15.3</activemq.version>
    <antlr2.version>2.7.7</antlr2.version>
    <appengine-sdk.version>1.9.62</appengine-sdk.version>
 <!--  and so for -->

类似地,您只能为某些工件/组输出依赖关系树。
要仅过滤名称中包含“休眠”的工件/组,可以执行以下操作:

mvn dependency:tree -Dincludes=*hibernate*

如果您的pom依赖于spring-boot-starter-data-jpa,则可能输出以下内容:

[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.0.0.RELEASE:compile
[INFO] |  \- org.hibernate:hibernate-core:jar:5.2.14.Final:compile
[INFO] |     +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] |     \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[INFO] \- org.springframework.boot:spring-boot-starter-web:jar:2.0.0.RELEASE:compile
[INFO]    \- org.hibernate.validator:hibernate-validator:jar:6.0.7.Final:compile