javascript
Spring Boot-Spring Tool Suit + Gradle 构建第一个Spring Boot 项目01
文章目錄
- 概述
- 使用Spring Tool Suite構建Spring Boot項目
- 下載STS
- 插件安裝
- 搭建第一個Spring Boot項目
- 啟動項目
概述
通常,構建一個Spring Boot項目有如下方式
-
使用IDE (比如Spring Tool Suite, IntelliJ IDEA )生成 Starter 代碼;
-
借助 Spring 站點,從 http://start.Spring.io 上下載可配置的 ZIP 文件;
-
使用到 http://start.Spring.io 站點的 curl 命令來達到相同的效果
方便起見,我們直接使用IDE開發Spring Boot 工程即可。
使用Spring Tool Suite構建Spring Boot項目
下載STS
訪問 https://Spring.io/tools/sts/all,并下載 STS 的最新發布版
插件安裝
構建第一個 Spring Boot 項目之前,首先需要安裝 Gradle 對 STS 的支持。
在 Dashboard 中,可以看到“Manage IDE Extensions”按鈕,然后,需要在“Language and framework tooling”區域中選擇下載“Gradle Support”。
Spring已經不推薦使用該插件管理Gradle項目了,推薦使用BuildShip,暫未找到如何安裝,先使用該插件。
同時推薦下載“Groovy Eclipse”以及“Groovy 2.4 compiler”,后面使用 geb 構建驗收測試時會用到它們
安裝后,重啟STS即可生效。
如果你關閉了Dashboard頁面,可以通過Help | Dashboard 進入Dashboard 頁面。
搭建第一個Spring Boot項目
使用“File | New | Spring Starter Project”導航菜單,這里的可選項是與 http://start.Spring.io 相同的,只不過嵌入到了 IDE 中。
這是一個 Gradle 應用,會生成 JAR文件并使用 Java 8。
為 Web 應用生成一個 JAR 文件?將 Web 應用打包為JAR 文件,這一點你們可能會覺得有些詭異。盡管仍然可以將其打包為 WAR,但這并不是推薦的實踐
在默認情況下,Spring Boot 將會創建一個胖 JAR 包(fat JAR),這個 JAR 包中包含了應用所有的依賴,提供了通過“java-jar”命令便捷啟動 Web 應用的方法。 我們的應用將會打包為JAR文件,如果你想創建WAR文件 的話,可以參考http://spring.io/guides/gs/convert-jar-to-war/。
選擇正確的信息后,Next,因為我們構建Spring MVC Web項目,因此只需要選擇Web即可
在配置窗口的底部會有一些復選框,代表各種 Spring Boot starter 庫。它們是可以添加到構建文件中的依賴項,針對各種 Spring 項目,它們提供了自動配置功能。
現在只關心 Spring MVC,所以只選中 Web 這個復選框。
等待幾分鐘后,控制臺輸出如下信息說明成功。
[sts] ----------------------------------------------------- [sts] Starting Gradle build for the following tasks: [sts] :cleanEclipse [sts] :eclipse [sts] ----------------------------------------------------- Support for clients using a tooling API version older than 3.0 was deprecated and will be removed in Gradle 5.0. You are currently using tooling API version 2.2.1. You should upgrade your tooling API client to version 3.0 or later. :cleanEclipseClasspath UP-TO-DATE :cleanEclipseJdt UP-TO-DATE :cleanEclipseProject UP-TO-DATE :cleanEclipse UP-TO-DATE :eclipseClasspath :eclipseJdt :eclipseProject :eclipseBUILD SUCCESSFUL in 2s 6 actionable tasks: 3 executed, 3 up-to-date [sts] ----------------------------------------------------- [sts] Build finished succesfully! [sts] Time taken: 0 min, 2 sec [sts] -----------------------------------------------------成功后我們將會得到如下的工程結構
-
主類MasterSpringMvcApplication 及其測試類 MasterSpringMvcApplicationTests
-
兩個空的文件夾 — static 和templates,它們分別用來存放靜態Web 資源(圖片、樣式文件等)和模板(jsp、freemarker 或Thymeleaf)。
-
application.properties,它是 Spring Boot 默認的配置文件,默認是空的
-
構建文件 build.gradle
啟動項目
到這里,我們就可以運行應用的主方法,這樣就會啟動一個 Web 服務器
運行 MasterSpringMvcApplication#main方法 Run As Spring Boot App
啟動日志
. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v2.0.0.RELEASE)2018-03-07 16:14:01.863 INFO 21784 --- [ main] m.MasterSpringMvcApplication : Starting MasterSpringMvcApplication on Mr with PID 21784 (D:\workspace\workspace-sts-3.9.2\masterSpringMvc\bin\main started by Mr.Yang in D:\workspace\workspace-sts-3.9.2\masterSpringMvc) 2018-03-07 16:14:01.868 INFO 21784 --- [ main] m.MasterSpringMvcApplication : No active profile set, falling back to default profiles: default 2018-03-07 16:14:01.996 INFO 21784 --- [ main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2cbb3d47: startup date [Wed Mar 07 16:14:01 CST 2018]; root of context hierarchy 2018-03-07 16:14:03.704 INFO 21784 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2018-03-07 16:14:03.738 INFO 21784 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2018-03-07 16:14:03.738 INFO 21784 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.28 2018-03-07 16:14:03.745 INFO 21784 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jre1.8.0_161\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_161/bin/server;C:/Program Files/Java/jre1.8.0_161/bin;C:/Program Files/Java/jre1.8.0_161/lib/amd64;C:\ProgramData\Oracle\Java\javapath;E:\Program Files\Java\jdk1.7.0_51\bin;E:\Program Files\Java\jdk1.7.0_51\jre\bin;C:\windows\system32\;E:\Program Files\Python27;E:\Program Files\Git\cmd;E:\libs\apache-maven-3.5.0-bin\apache-maven-3.5.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Users\Mr.Yang\AppData\Local\Microsoft\WindowsApps;C:\Users\Mr.Yang\AppData\Local\GitHubDesktop\bin;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;;E:\Program Files\spring-tool-suite-3.9.2.RELEASE\sts-3.9.2.RELEASE;;.] 2018-03-07 16:14:03.928 INFO 21784 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2018-03-07 16:14:03.929 INFO 21784 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1938 ms 2018-03-07 16:14:04.227 INFO 21784 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/] 2018-03-07 16:14:04.235 INFO 21784 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 2018-03-07 16:14:04.236 INFO 21784 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 2018-03-07 16:14:04.236 INFO 21784 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*] 2018-03-07 16:14:04.236 INFO 21784 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 2018-03-07 16:14:04.811 INFO 21784 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@2cbb3d47: startup date [Wed Mar 07 16:14:01 CST 2018]; root of context hierarchy 2018-03-07 16:14:04.891 INFO 21784 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 2018-03-07 16:14:04.894 INFO 21784 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 2018-03-07 16:14:04.952 INFO 21784 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-03-07 16:14:04.952 INFO 21784 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-03-07 16:14:05.035 INFO 21784 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-03-07 16:14:05.344 INFO 21784 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2018-03-07 16:14:05.405 INFO 21784 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2018-03-07 16:14:05.412 INFO 21784 --- [ main] m.MasterSpringMvcApplication : Started MasterSpringMvcApplication in 4.06 seconds (JVM running for 5.889)此時,tomcat容器已經啟動成功,訪問 http://localhost:8080,此時會產生一個錯誤,不必擔心,寫個Controller,隨便提供個方法,訪問該方法即可
總結
以上是生活随笔為你收集整理的Spring Boot-Spring Tool Suit + Gradle 构建第一个Spring Boot 项目01的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java was started but
- 下一篇: Spring Boot-Spring T