Spring boot 入门学习11. SpringBootCLI使用入门

一、简介

Spring Boot CLI是一个可以快速开发Spring应用的命令行工具,运行Groovy脚本。使用CLI可以用极短的代码创建一个能启动的应用程序。

二、使用

1. 安装CLI

2.1.1 linux下可以通过SDKMAN(SDK Manager)安装.

SDKMAN是一个JVM上各种语言SDK和工具包的安装管理工具,它的前身是GVM。

sdk install springboot

2.1.2. 使用Scoop安装

scoop bucket add extras
scoop install springboot

2.1.3. 下载安装包

下载地址
下载后解压,把bin目录配置到path里。

2.1.4. Mac下可以通过Homebrew或MacPorts安装。

brew tap pivotal/tap
brew install springboot

安装以后,在命令行运行:

spring --version
可以看到Spring CLI v2.2.2.RELEASE

2. 使用

新建一个文件:HelloWorld.groovy

 
@RestController
class HelloWorld {
  @RequestMapping("/")
  String hello() {
    "Hello JournalDev World."
  }
}

命令行运行:

spring run helloWorld.groovy

程序开始自动下载依赖并运行:
在这里插入图片描述

Spring Boot Components使用Groovy Compiler和Groovy Grape提供一些Defaults lime添加所需的导入,提供所需的配置,解决jar依赖,添加main()方法等。

其它命令:

指定运行端口
spring run hello.groovy -- --server.port=9000
设置JVM
JAVA_OPTS=-Xmx1024m spring run hello.groovy

使用浏览器可以打开:http://localhost:8080/
浏览器显示:

Hello JournalDev World.

3. 减少grab依赖

标准的Groovy包含一个@Grab注解,这个用来加载第三方库,可以使得不用构建工具,仅使用Groovy就实现类似Maven或Gradle自动下载jar的功能。
下面是一些配置项:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wadhe0TV-1578449598407)(/uploads/20200108/4bfe8e269ab666612e89efb2f80bf79f.png)]

4. 默认的Import语法

使用 @Component @RestController @RequestMapping时不需要使用import导入包。

5. 自动实现Main 方法

不需要自己写public static void main(String[] args)方法 。

6. 导入依赖

默认情况下,CLI在spring-boot-dependencies'来处理@Grab依赖。 可以使用@DependencyManagementBom`注解来覆盖默认依赖。如:

@DependencyManagementBom("com.example.custom-bom:1.0.0")

7. 运行多个源文件

spring run *.groovy

8. 打包应用

spring jar my-app.jar *.groovy

生成的jar包里包含应用程序类和依赖包,可以使用java -jar命令来运行。可以使用--include--exclude来添加或删除到jar的显式路径 ,多个项目使用逗号分隔。
默认情况下,包含内容:

public/**, resources/**, static/**, templates/**, META-INF/**, *

默认情况下,排除内容:

.*, repository/**, build/**, target/**, **/*.jar, **/*.groovy

9. 脚手架创建新项目

可以使用命令行来创建一个新的spring boot项目

spring init --dependencies=web,data-jpa my-project
Using service at https://start.spring.io
Project extracted to '/Users/developer/example/my-project'

上面示例生成一个基于maven的 my-project项目,使用spring-boot-starter-webspring-boot-starter-data-jpa
可以使用–list来显示该命令有创建哪些项目的能力:

$ spring init --list
=======================================
Capabilities of https://start.spring.io
=======================================

Available dependencies:
-----------------------
actuator - Actuator: Production ready features to help you monitor and manage your application
...
web - Web: Support for full-stack web development, including Tomcat and spring-webmvc
websocket - Websocket: Support for WebSocket development
ws - WS: Support for Spring Web Services

Available project types:
------------------------
gradle-build -  Gradle Config [format:build, build:gradle]
gradle-project -  Gradle Project [format:project, build:gradle]
maven-build -  Maven POM [format:build, build:maven]
maven-project -  Maven Project [format:project, build:maven] (default)

...

示例:

spring init --build=gradle --java-version=1.8 --dependencies=websocket --packaging=war sample-app.zip

10. 使用shell

spring shell
version

使用ctrl+c退出命令行。

11. 添加扩展

spring install com.example:spring-boot-cli-extension:1.0.0.RELEASE

添加扩展时会自动添加依赖项。

卸载:


spring uninstall com.example:spring-boot-cli-extension:1.0.0.RELEASE

12. 使用Groovy Beans DSL开发应用程序

示例:

@Configuration(proxyBeanMethods = false)
class Application implements CommandLineRunner {

    @Autowired
    SharedService service

    @Override
    void run(String... args) {
        println service.message
    }

}

import my.company.SharedService

beans {
    service(SharedService) {
        message = "Hello World"
    }
}

13. 使用settings.xml配置CLI

Spring Boot CLI 使用Aether(Maven的依赖项解析引擎)解析依赖项。可以配置:~/.m2/settings.xml来配置Aether.
下面是CLI可以用到的设置项:

  • Offline
  • Mirrors
  • Servers
  • Proxies
  • Profiles
    – Activation
    – Repositories
  • Active profiles
    可以查看Maven的设置文档查看详细内容。

猜你喜欢

转载自blog.csdn.net/xundh/article/details/103886328
今日推荐