iT邦幫忙

2022 iThome 鐵人賽

DAY 1
0
自我挑戰組

Spring In Action系列 第 1

@SpringBootApplication

  • 分享至 

  • xImage
  •  

由於這本書是用Maven,所以dependency就會被描述在pom.xml中,可以從這邊看到我們當初選的dependency:
pom
值得注意的是spring相關的dependency會有個”starter”的字樣在artifactId中,這個starter的意思就是同捆包的概念,讓developer可以不用去處理瑣碎的libraries,而是以功能導向的來選擇需要的dependency,至於實際引用了哪些libraries,就交給starter來處理吧!

接著來看產生出來的main class中寫了甚麼。
可以看到他就是一個很單純包含了經典main方法的XXXXApplication的class,只不過這個class:

  1. annotated了@SpringBootApplication
  2. main方法中執行了SpringApplication.run(XXXXApplication.class, args)

@SpringBootApplication是一個集合的annotation,其中包含了3個annotation:

  1. @SpringBootConfiguration
    就是被指名為是@Configuration,只不過另外多加了不同的稱謂,其道理和@Controller, @Service都像@Component會被scan進Application Context一樣。
  2. @EnableAutoConfiguration
    允許automatic configuration,代表Spring會自動對一些component進行config
  3. @ComponentScan
    允許component scan

而至於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即可。


下一篇
View
系列文
Spring In Action30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言