Spring Boot項目和傳統的Maven項目有什麼不同?
沒有不同。Spring Boot 項目屬於Maven項目,當然,也可以通過Gradle構建,本書設計項目主要使用Maven構建,後面會單獨開一章專門將Gradle如何構建。
創建項目
打開網頁 Spring Initializr,見圖1。
在前面打開的網頁中按照圖2所示填寫,並點擊網頁底部的GENERATE按鈕。
我們的第一個項目只需要完成一個簡單的rest接口即可,所以上圖右側的dependecies我只選擇了Spring Web。
將下載的zip包解壓縮到你希望它呆的地方,並導入你喜歡的IDE。這裏使用的是Intellj Idea, 你也可以使用Eclipse或者Spring Tools。通過IDE查看項目結構,如圖3所示, 可以看出它是一個標準的Maven工程, 並且提供了一些Spring Boot的基礎文件,向我們展示了Spring Boot項目的基本結構。
運行項目
DemoAppApplication.java文件裏面包含有main方法,可以直接運行。
當你直接Run的時候, 在控制檯中可以看到如下內容。
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.4.1)
2020-11-24 23:53:23.521 INFO 9592 --- [ main] c.c.hanbinit.demoApp.DemoAppApplication : Starting DemoAppApplication using Java 15 on LAPTOP-740MHR3N with PID 9592 (D:\git\demoApp\target\classes started by hanbin in D:\git\demoApp)
2020-11-24 23:53:23.521 INFO 9592 --- [ main] c.c.hanbinit.demoApp.DemoAppApplication : No active profile set, falling back to default profiles: default
2020-11-24 23:53:24.387 INFO 9592 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2020-11-24 23:53:24.398 INFO 9592 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-11-24 23:53:24.398 INFO 9592 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.39]
2020-11-24 23:53:24.438 INFO 9592 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-11-24 23:53:24.448 INFO 9592 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 868 ms
2020-11-24 23:53:24.568 INFO 9592 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-11-24 23:53:24.698 INFO 9592 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2020-11-24 23:53:24.708 INFO 9592 --- [ main] c.c.hanbinit.demoApp.DemoAppApplication : Started DemoAppApplication in 1.473 seconds (JVM running for 2.145)
最後一行日誌標識着我們的第一個Spring Boot項目已經成功啓動了,只是我們的項目裏面啥都沒有。
添加接口
我們在DemoAppApplication.java中添加部分代碼,如圖4中紅框標識。
在瀏覽器中輸入:http://localhost:8080/sayHello/jack, 可以看到圖5所示結果,這標識着我們可以通過對這個項目做簡單的代碼改動,就可以提供出一個可以被訪問的接口。
下面講下本文例子中使用到的幾個註解。
- @RestController 告訴我們這個類會提供一些API接口,這些接口默認會返回JSON格式的數據。不會像@Controller那樣進行view間的跳轉。
- @GetMapping 告訴我們它修飾的這個方法會提供一個method爲GET的接口,其中的內容是這個接口的URI。
- @PathVariable 是用來取@GetMapping中的接口地址中的url傳參的。
- @SpringBootApplication 標記這個類裏面的main方法啓動的是一個Spring Boot應用,並且開啓一些列的自動配置。