Spring 框架入门教程
1. 1. Spring 框架 2. 2. Spring 5 3. 3. Spring WebFlux 4. 4. 先介绍一下 Spring 5. 5. 什么是 Spring 依赖注入 6. 6. 什么是 Spring IoC 容器 和 Bean 7. 7. Spring Bean 的生命周期 8. 8. Spring REST 开发 9. 9. Spring REST XML 10. 10. Spring RestTemplate 开发 11. 11. Spring AOP 切面编程 12. 12. Spring AOP 方法调优 13. 13. Spring 注解详解 14. 14. Spring 核心注解之 @Autowired 15. 15. Spring 核心注解之 @RequestMapping 16. 16. Spring MVC 开发样例 17. 17. Spring MVC 开发指南 18. 18. Spring MVC 异常处理机制 19. 19. Spring MVC Validator 20. 20. Spring MVC 拦截器 21. 21. Spring MVC 文件上传 22. 22. Spring MVC 国际化(i18n) 23. 23. Spring MVC Hibernate MqSQL 24. 24. Spring ORM 25. 25. Spring ORM JPA 26. 26. Spring Data JPA 27. 27. Spring 事务管理 28. 28. 常用的 Spring JdbcTemplate 29. 29. Spring Security 简介 30. 30. Spring Security 教程 31. 31. Spring Security UserDetailsService 32. 32. Spring MVC 登录注销简单案例 33. 33. Spring Security Roles 34. 34. Spring Boot Tutorial 35. 35. Spring Boot Components 36. 36. Spring Boot CLI Hello World 37. 37. Spring Boot Initilizr Web 38. 38. Spring Boot Initilizr IDE 39. 39. Spring Boot Initilizr CLI 40. 40. Spring Boot Initilizr Tools 41. 41. Spring Boot MongoDB 42. 42. Spring Boot Redis Cache 43. 43. Spring Boot 常见面试问题 44. 44. Spring Batch 45. 45. Spring Batch 批处理示例 46. 46. Spring AMQP 47. 47. Spring RabbitMQ 48. 48. Spring AMQP RabbitMQ 49. 49. Apache ActiveMQ 安装与启动 50. 50. Spring ActiveMQ 教程 51. 51. Spring ActiveMQ 示例 52. 52. Spring JDBC 53. 53. Spring DataSource JNDI 54. 54. Spring Hibernate 55. 55. Spring Primefaces JPA 56. 56. Spring Primefaces MongoDB 57. 57. Spring Primefaces Hibernate 58. 58. SpringRoo Primefaces Hibernate 59. 59. Spring JSF 60. 60. Spring JDF Hibernate 61. 61. Spring Data MongoDB 62. 62. Spring 常见面试问题

39. Spring Boot Initilizr CLI

这是我前两篇文章的延续。在阅读这篇文章之前,请浏览一下我之前在&&8220;Spring Boot初始化Web界面”;以及&#带启动插件的;.

用于快速启动新的/Gradle项目。它生成初始项目结构并构建脚本以减少开发时间。

正如我们在上一篇文章中所讨论的,Spring Boot Initilizr有以下几种形式:

  1. 带有Web界面的Spring Boot初始化
  2. 带有IDE/IDE插件的Spring Boot Initilizr
  3. 使用Spring Boot CLI的Spring Boot Initilizr
  4. 带第三方工具的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”;默认设置:

  1. 默认的构建工具是“;maven”;。
  2. 默认Spring Initilizr服务目标URL:https://start.spring.io
  3. 默认项目名称:“;演示”;
  4. 默认maven类型:“;jar”;
  5. 添加到生成脚本文件的默认Spring Boot依赖项:
  6. 
    <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>
    
  7. 默认Maven工件:
  8. 
        <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有关的;。

如果您遇到任何问题或有任何建议,请给我留言。