由於這本書是用Maven,所以dependency就會被描述在pom.xml中,可以從這邊看到我們當初選的dependency:
值得注意的是spring相關的dependency會有個”starter”的字樣在artifactId中,這個starter的意思就是同捆包的概念,讓developer可以不用去處理瑣碎的libraries,而是以功能導向的來選擇需要的dependency,至於實際引用了哪些libraries,就交給starter來處理吧!
接著來看產生出來的main class中寫了甚麼。
可以看到他就是一個很單純包含了經典main方法的XXXXApplication的class,只不過這個class:
@SpringBootApplication是一個集合的annotation,其中包含了3個annotation:
而至於main方法就是到時候開發完打包後,在執行時的進入點了。main方法中可以看到執行了SpringApplication.run()方法,方法中第一個傳入的arg是一個configuration class,而預設產生的code會自動帶入當前的這個@SpringBootApplication class,不過如果要換掉當然也是可以的。
我們可以來試試!打開cmd,路徑指定到project上,然後打mvnw package,就會進行打包了,預設會打包到./target裡面,可以看到我們打包的.jar檔案
有了.jar檔案,我們就可以透過java來執行它了!打上java -jar target/xxxxxx.jar,就會開始運行我們的SpringBoot project。
還有更簡便的作法,因為其實在生成project時,就預設了spring-boot-maven的dependency,我們可以直接打mvnw spring-boot:run,就可以直接運行project。
除了src/main/java外,也還有src/test/java,預設也生成了一個TacoCloudApplicationTests,annotated with @SpringBootTest,這個用處就是告訴JUnit這個測試會使用SpringBoot來進行,背後就會自動做一些處理,來可以進行Spring application context相關的測試。
測試也可以透過mvnw指令來執行,直接打上mvnw test即可。