这是我前两篇文章的延续。在阅读这篇文章之前,请浏览一下我之前在&&8220;Spring Boot初始化Web界面”;以及带启动插件的;.
用于快速启动新的/Gradle项目。它生成初始项目结构并构建脚本以减少开发时间。
正如我们在上一篇文章中所讨论的,Spring Boot Initilizr有以下几种形式:
- 带有Web界面的Spring Boot初始化
- 带有IDE/IDE插件的Spring Boot Initilizr
- 使用Spring Boot CLI的Spring Boot Initilizr
- 带第三方工具的Spring Boot初始化
现在,我们将讨论如何使用带有Spring Boot CLI“;Spring Boot Initilizr和Spring Boot CLI”;选项引导Spring应用程序。
使用Spring Boot CLI的Spring Boot Initilizr
请先看一下这个帖子“;Spring Boot CLI基础知识;设置Spring Boot CLI软件。Spring Bootcli为Spring应用程序提供了一个命令。
我已经从&8220;下载了Spring Bootcliezip;https://start.spring.io&8221;并将此软件安装在“;D:spring-boot-cli-1.2.3.发行版”;。
设置以下系统变量:
PATH=D:spring-boot-cli-1.2.3.RELEASEin;%PATH%
“;spring init”;命令
在Spring Bootcli组件中,“;spring init”;命令很容易使用。它使用“;Spring Initilizr服务”;托管在“;https://start.spring.io&8221;(默认情况下,我们也可以指定目标URL。我们将在下一节讨论这一点。)使用Spring Bootcli组件引导Spring或Spring Boot应用程序。
“;spring init”;语法
spring init [options] [location]
这里“;选项”;是命令选项,“;location”;被指定为文件系统位置来创建新的Spring Boot项目。我们很快将逐一详细讨论指挥方案。
请参阅下面显示的spring&3521命令。
spring help init
“;spring init”;命令示例
现在,我们将通过一些合适的例子逐一探讨“;spring init”;命令选项。在IDE工作区打开CMD(命令提示符)(我的工作区位于D:RamWorkspacesSpringSTSBootWorkspace2)并执行以下示例。
示例1:-要使用默认设置创建Spring Boot项目,请执行以下操作:
spring init
它将新的Spring Boot项目zip文件创建为&8220;演示压缩和8221;在当前工作目录中使用默认设置。
注:-“;spring init”;默认设置:
- 默认的构建工具是“;maven”;。
- 默认Spring Initilizr服务目标URL:https://start.spring.io
- 默认项目名称:“;演示”;
- 默认maven类型:“;jar”;
- 添加到生成脚本文件的默认Spring Boot依赖项:
- 默认Maven工件:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<groupId>org.test</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
例2:-创建具有所需依赖项和项目名称的Spring Boot项目
spring init -d=web,data-jpa,jms,ws SpringMVCMavenToolProject.zip
它创建了一个带有JPA、JMS和WS功能的打包Spring Boot web应用程序。
这里“;-d”;选项意味着我们可以用逗号分隔的值列出所有需要的功能。“;精灵gMVCMavenToolProject.zip和#8221;是在当前工作目录中使用该名称创建的项目名称和zip文件。
例3:-为Gradle构建工具创建具有所需依赖项和项目名称的Spring Boot项目。
spring init -d=web,data-jpa,jms,ws --build=gradle -p=war SpringMVCGradleToolProject
它为Gradle构建工具创建了一个具有JPA、JMS和WS功能的未打包的Spring Bootwebapplication。
- “;-d”;选项意味着我们可以用逗号分隔的值列出所有需要的功能。
- “;–;build”;选项指定所需的生成工具。它接受两个值:maven(默认值)和gradle。
- “;SpringMVCGradleToolProject&8221;是在当前工作目录中创建的项目名称。
- “;-p”;或“;–;packaging”;选项指定包装类型。默认值为“;jar&8221;。
例4:-为Maven构建工具创建具有所需依赖项和项目名称的Spring Boot项目。
spring init -d=web,jdbc,ws,cloud-aws,h2 --build=maven
--packaging=war SpringMVCMavenToolProject.zip
它为Maven构建工具创建了一个带有JDBC、AWS云和WS功能的打包Spring Boot web应用程序。
- “;-d”;选项意味着我们可以用逗号分隔的值列出所有需要的功能。
- “;–;build”;选项指定所需的生成工具。它接受两个值:maven(默认值)和gradle。
- “;SpringMVCMavenToolProject”;是在当前工作目录中创建的项目名称。
- “;-p”;或“;–;packaging”;选项指定包装类型。默认值为“;jar&8221;。它接受“;pom,jar,war,ear,rar,par”;
例5:-为具有指定Spring Boot和Java版本的Maven构建工具创建具有所需依赖项和项目名称的Spring Boot项目。
默认情况下,“;spring init”;命令将拾取“;系统变量”;并采用适当的spring Boot和Java版本。但是可以指定Spring Boot和Java版本。
我的Windows系统配置为Java Version=1.8和Spring Boot Version=1.2.3.RELEASE。不过,我想在创建新的Spring Boot项目时更改它们,如下所示。
spring init -d=web,jdbc,ws,cloud-aws,h2 --build=maven
--java-version=1.7
--boot-version=1.2.5.RELEASE
-packaging=war SpringMVCMavenToolProject.zip
它创建了一个带有JDBC、AWS云和WS功能的打包Spring Bootwebapplication,用于java1.7和Spring Boot1.2.5.RELEASE的Maven构建工具。
- “;-j”;或“;–;java版本”;选项用于指定java版本,如1.7、1.8等。
- “;-b”;或“;–;引导版本”;选项用于指定Spring boot框架版本,如1.2.5.RELEASE、1.3.0.M1等。
- “;-d”;选项意味着我们可以用逗号分隔的值列出所有需要的功能。
- “;–;build”;选项指定所需的生成工具。它接受两个值:maven(默认值)和gradle。
- “;SpringMVCMavenToolProject”;是在当前工作目录中创建的项目名称。
- “;-p”;或“;–;packaging”;选项指定包装类型。默认值为“;jar&8221;。它接受“;pom,jar,war,ear,rar,par”;
注:-当我们执行“;spring init”;命令时,我们可以看到以下消息:它将连接“;spring Boot Initilizr Default Service”;。
Using service at https://start.spring.io
同样,我们也可以使用其他的spring init和8221;选项来研究它们。例如,“;–;强制”;使用更新强制更新已存在的相同项目名称,以避免错误。
注:-我们可以提取使用“;spring init”;命令创建的zip文件,并将这些项目导入到我们最喜欢的springide中(对于示例:-SpringSTS套件),并继续开发我们的项目相关需求。
在我接下来的文章中,我们将使用这些Spring Boot项目来开发一些应用程序来增强一些功能。
以下部分列出了支持的生成选项。
+--------+----------------------------------------------------------------------+
| Id | Description |
+--------+----------------------------------------------------------------------+
| maven | Creates a Maven project with pom.xml file for Maven build tool |
| gradle | Creates a Maven project with build.gradle file for Gradle build tool |
+-------------------------------------------------------------------------------+
默认的构建参数值是“;maven”;
下一节列出了以逗号分隔的&8220;依赖项&8221;的支持标识符列表;。
+-------------------------+-----------------------------------------------------------------------------------------------+------------------+
| Id | Description | Required version |
+-------------------------+-----------------------------------------------------------------------------------------------+------------------+
| actuator | Production ready features to help you monitor and manage your application | |
| amqp | Support for the Advanced Message Queuing Protocol via spring-rabbit | |
| aop | Support for aspect-oriented programming including spring-aop and AspectJ | |
| batch | Support for Spring Batch including HSQLDB database | |
| cache | Support for Spring"s Cache abstraction | >= 1.3.0.M1 |
| cloud-aws | Support for spring-cloud-aws | >= 1.2.3.RELEASE |
| cloud-aws-jdbc | Support for spring-cloud-aws-jdbc | >= 1.2.3.RELEASE |
| cloud-aws-messaging | Support for spring-cloud-aws-messaging | >= 1.2.3.RELEASE |
| cloud-bus-amqp | Support for spring-cloud-bus-amqp | >= 1.2.3.RELEASE |
| cloud-config-client | Support for spring-cloud-config Client | >= 1.2.3.RELEASE |
| cloud-config-server | Support for spring-cloud-config Server | >= 1.2.3.RELEASE |
| cloud-connectors | Simplifies connecting to services in cloud platforms | >= 1.2.0.RELEASE |
| cloud-eureka | Support for spring-cloud-netflix Eureka | >= 1.2.3.RELEASE |
| cloud-eureka-server | Support for spring-cloud-netflix Eureka Server | >= 1.2.3.RELEASE |
| cloud-feign | Support for spring-cloud-netflix Feign | >= 1.2.3.RELEASE |
| cloud-hystrix | Support for spring-cloud-netflix Hystrix | >= 1.2.3.RELEASE |
| cloud-hystrix-dashboard | Support for spring-cloud-netflix Hystrix Dashboard | >= 1.2.3.RELEASE |
| cloud-oauth2 | Support for spring-cloud-security OAuth2 | >= 1.2.3.RELEASE |
| cloud-ribbon | Support for spring-cloud-netflix Ribbon | >= 1.2.3.RELEASE |
| cloud-security | Support for spring-cloud-security | >= 1.2.3.RELEASE |
| cloud-starter | Support for spring-cloud-context (e.g. Bootstrap context and @RefreshScope) | >= 1.2.3.RELEASE |
| cloud-turbine | Support for spring-cloud-netflix Turbine | >= 1.2.3.RELEASE |
| cloud-turbine-amqp | Support for spring-cloud-netflix Turbine AMQP | >= 1.2.3.RELEASE |
| cloud-zuul | Support for spring-cloud-netflix Zuul | >= 1.2.3.RELEASE |
| data-elasticsearch | Support for the Elasticsearch search and analytics engine including spring-data-elasticsearch | |
| data-gemfire | Support for the GemFire distributed data store including spring-data-gemfire | |
| data-jpa | Support for the Java Persistence API including spring-data-jpa, spring-orm and Hibernate | |
| data-mongodb | Support for the MongoDB NoSQL Database, including spring-data-mongodb | |
| data-rest | Support for exposing Spring Data repositories over REST via spring-data-rest-webmvc | |
| data-solr | Support for the 阿帕奇 Solr search platform, including spring-data-solr | |
| derby | Support for the 阿帕奇 Derby database (with embedded support) | >= 1.2.2.RELEASE |
| devtools | Support for Spring Boot Development Tools. | >= 1.3.0.M1 |
| freemarker | Support for the FreeMarker templating engine | |
| groovy-templates | Support for the Groovy templating engine | |
| h2 | Support for the H2 database (with embedded support) | |
| hateoas | Support for HATEOAS-based RESTful services | >= 1.2.2.RELEASE |
| hornetq | Support for Java Message Service API via HornetQ | |
| hsql | Support for the HSQLDB database (with embedded support) | |
| integration | Support for common spring-integration modules | |
| jdbc | Support for JDBC databases | |
| jersey | Support for the Jersey RESTful Web Services framework | >= 1.2.0.RELEASE |
| jta-atomikos | Support for JTA distributed transactions via Atomikos | >= 1.2.0.M1 |
| jta-bitronix | Support for JTA distributed transactions via Bitronix | >= 1.2.0.M1 |
| mail | Support for javax.mail | >= 1.2.0.RC1 |
| mobile | Support for spring-mobile | |
| mustache | Support for the Mustache templating engine | >= 1.2.2.RELEASE |
| mysql | Support for the MySQL jdbc driver | |
| postgresql | Support for the PostgreSQL jdbc driver | |
| redis | Support for the REDIS key-value data store, including spring-redis | |
| remote-shell | Support for CRaSH | |
| security | Support for spring-security | |
| social-facebook | Support for spring-social-facebook | |
| social-linkedin | Support for spring-social-linkedin | |
| social-twitter | Support for spring-social-twitter | |
| thymeleaf | Support for the Thymeleaf templating engine, including integration with Spring | |
| vaadin | Support for Vaadin | |
| velocity | Support for the Velocity templating engine | |
| web | Support for full-stack web development, including Tomcat and spring-webmvc | |
| websocket | Support for websocket development with Tomcat | |
| ws | Support for Spring Web Services | |
+-------------------------+-----------------------------------------------------------------------------------------------+------------------+
从这个列表中,我们已经在我们的示例中使用了“;web、datajpa、jms、ws”。请尝试使用其他功能或依赖项来开发一些示例。我们将在以后的文章中使用其他依赖项来研究它们。
你可以在我即将发表的文章中阅读剩余的第三方工具选项;带第三方工具的Spring Boot初始化“;。
这就是’;与使用Spring Boot CLI的Spring Boot Initilizr有关的;。
如果您遇到任何问题或有任何建议,请给我留言。