springboot快速开发利器:cli 属实真牛逼!
Spring boot CLI应用程序使用groovy语言,通过这种方式,我们用最少的代码行创建我们的应用程序并启动它。
1. Spring boot CLI应用程序使用groovy。我们在应用程序中创建groovy文件,为此我们不需要提供groovy的任何JAR依赖。Spring boot会自己配置groovy的JAR依赖项。
2. 在编写groovy文件时,我们不需要写导入语句,直到需要为止。在写导入语句之前,我们应该检查我们是否得到导入错误。通过这种方式,我们尽可能地写出最少的代码行数。
@Controller
注解,那么Spring Boot就会下载Spring Web应用程序的JAR依赖项。@Grab
注释groovy功能。spring run
命令来运行应用程序,spring test
命令来运行spring测试应用程序。spring jar
命令。spring initializer
站点创建项目。spring shell
命令的集成外壳。spring boot main()
方法。它是由spring boot CLI自动提供的。手动安装 使用SDKMAN进行安装! OSX自制软件的安装 MacPorts的安装 命令行完成
步骤1:使用以下链接下载Spring boot CLI
http://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.4.3.RELEASE/spring-boot-cli-1.4.3.RELEASE-bin.zip
步骤2:解压缩并保存在你系统的某个地方。假设我把它保存在如下位置。
C:\spring-1.4.3.RELEASE
SPRING_HOME的值为 C:\spring-1.4.3.RELEASE
PATH的值为 C:\spring-1.4.3.RELEASE\bin
spring help run
: 提供支持的命令的详细信息。spring version
: 提供Spring boot CLI的版本。
spring-app
|
--message.groovy
--hello.groovy
--tests.groovy
--templates
|
--hello.html
--static
|
--index.html
用 Spring Boot CLI 创建 Hello World 示例
@RestController
class HelloController {
@RequestMapping("/home")
String home() {
"Hello World!"
}
}
1. 默认的导入语句。在大多数情况下,我们不需要导入API。只有在不属于默认导入语句的情况下才可以导入。
2. spring boot没有main方法。它将被自动创建。
spring run hello.groovy
它下载所有的依赖性JAR。依赖性JAR的版本由我们所使用的Spring boot CLI的版本决定。下载JAR只在第一次时进行。 依赖性JAR是由代码中使用的类和注解定义的。由于我们使用的是 @RestController
,所以会下载与Spring MVC和嵌入式Tomcat相关的JAR。现在它编译代码并在默认端口8080上启动嵌入式Tomcat服务器。
http://localhost:8080/home
来访问该应用程序。server.port
运行命令,如下所示。spring run hello.groovy -- --server.port=8484
--server.port
一起。现在,嵌入式Tomcat将以8484端口启动,为了运行应用程序,我们需要使用http://localhost:8484/home
来访问。spring run *.groovy
使用 @Grab 注释
@Grab('spring-boot-starter-thymeleaf')
class MessageController {}
@Controller
@Grab('spring-boot-starter-thymeleaf')
class MessageController {
@RequestMapping("/msg")
String getMsg(Model model) {
String msg = "Welcome to Everyone!";
model.addAttribute("message", msg);
return "hello";
}
}
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Spring Boot CLI Example</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Message: ' + ${message}" />
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<title>Spring Boot CLI Example</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>Click to get <a href="/msg">Message</a> </p>
</body>
</html>
spring run *.groovy
http://localhost:8080/
@Controller @RestController @EnableWebMvc : 在这种情况下,Spring MVC和嵌入式Tomcat将被下载。 @EnableWebSecurity : Spring安全相关的JAR将被下载。 @EnableJms: JMS应用程序相关的JAR将被下载。 @Test : 将会下载Spring测试应用相关的JAR。
class ApplicationTests {
@Test
void HelloAppTest() {
assertEquals("Hello World!", new HelloController().home())
}
}
spring test hello.groovy tests.groovy
spring test
:Spring boot CLI命令,用于测试应用程序。hello.groovy
:需要测试的应用程序文件。tests.groovy
:测试文件,用于测试应用程序文件。
使用 Spring Boot CLI 打包应用程序
spring jar spring-app.jar *.groovy
spring-app.jar
: 这是可执行的JAR。spring-app.jar.original
: 这是原JAR。
java -jar spring-app.jar
public/**, resources/**, static/**, templates/**, META-INF/**
repository/**, build/**, target/**, **/*.jar, **/*.groovy
--include
,我们可以将默认排除目录添加到打包的目录中。使用--exclude
,我们可以删除打包的目录。有关更多详细信息,我们可以按如下方式运行help命令。spring help jar
使用 Spring Boot CLI 创建一个新项目
https://start.spring.io
。假设我们想用thymleaf创建一个Web项目,那么我们将运行如下命令。spring init --dependencies=web,thymeleaf my-app.zip
spring-boot-starter-web
spring-boot-starter-thymeleaf
spring init --build=gradle --java-version=1.8 --dependencies=web,thymeleaf --packaging=war my-app.zip
使用嵌入式 Shell
spring shell
$ version
$ test hello.groovy tests.groovy
$ run hello.groovy
参考文献
http://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-installing-spring-boot.html
https://docs.spring.io/spring-boot/docs/current/reference/html/cli-using-the-cli.html
https://www.concretepage.com/spring-boot/spring-boot-cli-example
源码下载
https://www.concretepage.com/spring-boot/download/spring-boot-cli-example.zip来源:blog.csdn.net/qq_31635851/article/details/120411711
精彩推荐:
Spring Boot 一个接口同时支持 form 表单、form-data、json 的优雅写法
让人上瘾的新一代开发神器,彻底告别Controller、Service、Dao等方法