美文网首页
SpringBoot场景启动器

SpringBoot场景启动器

作者: CodePandaes | 来源:发表于2020-03-10 21:49 被阅读0次

    当我们使用SpringBoot搭建一个web项目的时候,并不需要我们单独导入spring-webmvc,spring-web的相关包和版本,仅仅一个spring-boot-starter-web启动器就解决了,这到底是为什么呢?
    首先新建一个SpringBoot的web项目,打开pom.xml

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.6.RELEASE</version>
        </parent>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    

    发现所有的SpringBoot的项目都会依赖于spring-boot-starter-parent这个父项目,ctrl+左键进入,再进入spring-boot-dependencies

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.0.6.RELEASE</version>
            <relativePath>../../spring-boot-dependencies</relativePath>
        </parent>
    
    <properties>
            <activemq.version>5.15.6</activemq.version>
            <antlr2.version>2.7.7</antlr2.version>
            <appengine-sdk.version>1.9.66</appengine-sdk.version>
            <artemis.version>2.4.0</artemis.version>
            <aspectj.version>1.8.13</aspectj.version>
            <assertj.version>3.9.1</assertj.version>
            <atomikos.version>4.0.6</atomikos.version>
            <bitronix.version>2.1.4</bitronix.version>
            <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
            <byte-buddy.version>1.7.11</byte-buddy.version>
            <caffeine.version>2.6.2</caffeine.version>
            <cassandra-driver.version>3.4.0</cassandra-driver.version>
            <classmate.version>1.3.4</classmate.version>
            <commons-codec.version>1.11</commons-codec.version>
            <commons-dbcp2.version>2.2.0</commons-dbcp2.version>
            <commons-lang3.version>3.7</commons-lang3.version>
            <commons-pool.version>1.6</commons-pool.version>
            <commons-pool2.version>2.5.0</commons-pool2.version>
            <couchbase-cache-client.version>2.1.0</couchbase-cache-client.version>
            <couchbase-client.version>2.5.9</couchbase-client.version>
            <derby.version>10.14.2.0</derby.version>
            <dom4j.version>1.6.1</dom4j.version>
            <dropwizard-metrics.version>3.2.6</dropwizard-metrics.version>
            <ehcache.version>2.10.5</ehcache.version>
            <ehcache3.version>3.5.3</ehcache3.version>
            <elasticsearch.version>5.6.12</elasticsearch.version>
            <embedded-mongo.version>2.0.3</embedded-mongo.version>
            <exec-maven-plugin.version>1.5.0</exec-maven-plugin.version>
            <flatten-maven-plugin.version>1.0.1</flatten-maven-plugin.version>
            <flyway.version>5.0.7</flyway.version>
            <freemarker.version>2.3.28</freemarker.version>
            <git-commit-id-plugin.version>2.2.5</git-commit-id-plugin.version>
            <glassfish-el.version>3.0.0</glassfish-el.version>
            <groovy.version>2.4.15</groovy.version>
            <gson.version>2.8.5</gson.version>
            <h2.version>1.4.197</h2.version>
            <hamcrest.version>1.3</hamcrest.version>
            <hazelcast.version>3.9.4</hazelcast.version>
            <hazelcast-hibernate5.version>1.2.3</hazelcast-hibernate5.version>
            <hibernate.version>5.2.17.Final</hibernate.version>
            <hibernate-jpa-2.1-api.version>1.0.2.Final</hibernate-jpa-2.1-api.version>
            <hibernate-validator.version>6.0.13.Final</hibernate-validator.version>
            <hikaricp.version>2.7.9</hikaricp.version>
            <hsqldb.version>2.4.1</hsqldb.version>
            <htmlunit.version>2.29</htmlunit.version>
            <httpasyncclient.version>4.1.4</httpasyncclient.version>
            <httpclient.version>4.5.6</httpclient.version>
            <httpcore.version>4.4.10</httpcore.version>
            <infinispan.version>9.1.7.Final</infinispan.version>
            <influxdb-java.version>2.9</influxdb-java.version>
            <jackson.version>2.9.7</jackson.version>
            <janino.version>3.0.10</janino.version>
            <javax-annotation.version>1.3.2</javax-annotation.version>
            <javax-cache.version>1.1.0</javax-cache.version>
            <javax-jaxb.version>2.3.1</javax-jaxb.version>
            <javax-jms.version>2.0.1</javax-jms.version>
            <javax-json.version>1.1.3</javax-json.version>
            <javax-jsonb.version>1.0</javax-jsonb.version>
            <javax-mail.version>1.6.2</javax-mail.version>
            <javax-money.version>1.0.3</javax-money.version>
            <javax-transaction.version>1.2</javax-transaction.version>
            <javax-validation.version>2.0.1.Final</javax-validation.version>
            <jaxen.version>1.1.6</jaxen.version>
            <jaybird.version>3.0.5</jaybird.version>
            <jboss-logging.version>3.3.2.Final</jboss-logging.version>
            <jboss-transaction-spi.version>7.6.0.Final</jboss-transaction-spi.version>
            <jdom2.version>2.0.6</jdom2.version>
            <jedis.version>2.9.0</jedis.version>
            <jersey.version>2.26</jersey.version>
            <jest.version>5.3.4</jest.version>
            <jetty.version>9.4.12.v20180830</jetty.version>
            <jetty-el.version>8.5.33</jetty-el.version>
            <jetty-jsp.version>2.2.0.v201112011158</jetty-jsp.version>
            <jmustache.version>1.14</jmustache.version>
            <jna.version>4.5.2</jna.version>
            <joda-time.version>2.9.9</joda-time.version>
            <johnzon.version>1.1.10</johnzon.version>
            <johnzon-jsonb.version>1.1.10</johnzon-jsonb.version>
            <jolokia.version>1.5.0</jolokia.version>
            <jooq.version>3.10.8</jooq.version>
            <jsonassert.version>1.5.0</jsonassert.version>
            <json-path.version>2.4.0</json-path.version>
            <jstl.version>1.2</jstl.version>
            <jtds.version>1.3.1</jtds.version>
            <junit.version>4.12</junit.version>
            <junit-jupiter.version>5.1.1</junit-jupiter.version>
            <junit-platform.version>1.1.0</junit-platform.version>
            <kafka.version>1.0.2</kafka.version>
            <kotlin.version>1.2.51</kotlin.version>
            <lettuce.version>5.0.5.RELEASE</lettuce.version>
            <liquibase.version>3.5.5</liquibase.version>
            <log4j2.version>2.10.0</log4j2.version>
            <logback.version>1.2.3</logback.version>
            <lombok.version>1.16.22</lombok.version>
            <mariadb.version>2.2.6</mariadb.version>
            <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
            <maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version>
            <maven-clean-plugin.version>3.0.0</maven-clean-plugin.version>
            <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
            <maven-dependency-plugin.version>3.0.2</maven-dependency-plugin.version>
            <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
            <maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version>
            <maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
            <maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
            <maven-help-plugin.version>2.2</maven-help-plugin.version>
            <maven-install-plugin.version>2.5.2</maven-install-plugin.version>
            <maven-invoker-plugin.version>3.1.0</maven-invoker-plugin.version>
            <maven-jar-plugin.version>3.0.2</maven-jar-plugin.version>
            <maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version>
            <maven-resources-plugin.version>3.0.2</maven-resources-plugin.version>
            <maven-shade-plugin.version>2.4.3</maven-shade-plugin.version>
            <maven-site-plugin.version>3.6</maven-site-plugin.version>
            <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
            <maven-surefire-plugin.version>2.21.0</maven-surefire-plugin.version>
            <maven-war-plugin.version>3.1.0</maven-war-plugin.version>
            ......
        </properties>
    

    发现原来spring-boot-denpendencies才是管理所有依赖版本号的地方,类似于版本管理中心,所以我们导入的依赖默认是不需要版本的


    以spring-boot-starter-web启动器为例

    进入spring-boot-starter-web,可以发现spring-webmvc,spring-web等开发web项目必须的包,而版本号则交给spring-boot-denpendencies统一管理

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>
        </dependencies>
    

    相关文章

      网友评论

          本文标题:SpringBoot场景启动器

          本文链接:https://www.haomeiwen.com/subject/vtzmdhtx.html