Springbootcli 简明教程

Spring Boot CLI - Starter Thymeleaf Project

让我们创建一个基于 Thymeleaf 的示例项目来演示 Spring CLI 的功能。请按照以下步骤创建示例项目。

Let’s create a sample Thymeleaf based project to demonstrate the capabilities of Spring CLI. Follow the below mentioned step to create a sample project.

Step

Description

1

Create a Folder with a name TestApplication with subfolders templates and static.

2

Create message.groovy in TestApplication folder, message.html in templates folder, index.html in static folder as explained below.

3

Compile and run the application to verify the result of the implemented logic.

TestApplication/message.groovy

TestApplication/message.groovy

@Controller
@Grab('spring-boot-starter-thymeleaf')
class MessageController {
   @RequestMapping("/message")
   String getMessage(Model model) {
      String message = "Welcome to TutorialsPoint.Com!";
      model.addAttribute("message", message);
      return "message";
   }
}

TestApplication/templates/message.html

TestApplication/templates/message.html

<!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>

TestApplication/static/index.html

TestApplication/static/index.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>Go to <a href="/message">Message</a></p>
   </body>
</html>

Run the application

键入以下命令

Type the following command

E:/Test/TestApplication/> spring run *.groovy

现在 Spring Boot CLI 将发挥作用,下载所需的依赖项,运行嵌入式 Tomcat,部署应用程序并启动它。您可以在控制台上看到以下输出。

Now Spring Boot CLI will come into action, download required dependencies, run the embedded tomcat, deploy the application and start it. You can see the following output on console.

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.6.3)

2022-02-03 11:36:33.362  INFO 10764 --- [       runner-0] o.s.boot.SpringApplication               : Starting application using Java 11.0.11 on DESKTOP-86KD9FC with PID 10764 (started by intel in E:\Test\TestApplication)
2022-02-03 11:36:33.372  INFO 10764 --- [       runner-0] o.s.boot.SpringApplication               : No active profile set, falling back to default profiles: default
2022-02-03 11:36:35.743  INFO 10764 --- [       runner-0] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2022-02-03 11:36:35.768  INFO 10764 --- [       runner-0] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-02-03 11:36:35.769  INFO 10764 --- [       runner-0] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.56]
2022-02-03 11:36:35.829  INFO 10764 --- [       runner-0] org.apache.catalina.loader.WebappLoader  : Unknown class loader [org.springframework.boot.cli.compiler.ExtendedGroovyClassLoader$DefaultScopeParentClassLoader@553a3d88] of class [class org.springframework.boot.cli.compiler.ExtendedGroovyClassLoader$DefaultScopeParentClassLoader]
2022-02-03 11:36:35.896  INFO 10764 --- [       runner-0] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-02-03 11:36:35.897  INFO 10764 --- [       runner-0] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2085 ms
2022-02-03 11:36:36.436  INFO 10764 --- [       runner-0] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page: class path resource [static/index.html]
2022-02-03 11:36:37.132  INFO 10764 --- [       runner-0] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2022-02-03 11:36:37.153  INFO 10764 --- [       runner-0] o.s.boot.SpringApplication               : Started application in 4.805 seconds (JVM running for 8.633)
2022-02-03 11:37:03.049  INFO 10764 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-02-03 11:37:03.049  INFO 10764 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2022-02-03 11:37:03.054  INFO 10764 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 3 ms

Browse the application in Browser

基于弹簧的休息应用程序现已准备就绪。将 url 打开为“http://localhost:8080/”,您将看到以下输出。

Our spring based rest application is now ready. Open url as "http://localhost:8080/" and you will see the following output.

Go to Message

点击消息链接,您将看到以下输出。

Click on Message link and you will see the following output.

Message: Welcome to TutorialsPoint.Com!

Points to consider

Spring CLI 执行以下操作。

Following actions are taken by Spring CLI.

  1. @Grab('spring-boot-starter-thymeleaf') annotation directs CLI to download spring-boot-starter-thymeleaf 2.6.3 version.

  2. Spring CLI automatically detects the version using its metadata as we’ve not specified any group id or version id here.

  3. Finally it compiles the code, deploy the war on a embedded tomcat, start embedded tomcat server on the default port 8080.