Doc 6.6. Using the @SpringBootApplication Annotation 提及 @SpringBootApplication 包含了
@EnableAutoConfiguration、@ComponentScan、@SpringBootConfiguration 三種標籤 。
在該系列文章 Day5 Doc 6.3.2 Importing XML Configuration & Doc 6.4 Auto-configuration ,
關於 @SpringBootApplication source code 可以看到這一點。
另一方面,對於想使用 @ComponentScan
、@EnableAutoConfiguration
標籤屬性的使用者,
@SpringBootApplication 也提供對應的 @AliasFor
(別名) 做選擇。
Doc 6.7.1 Running From an IDE :
官方給出了連結,連向 Eclipse 和 IDEA 。
Eclipse 和 IDEA 可以直接匯入 maven 專案 ,其他的 IDE 可以在安裝 plugin 後,進行匯入 maven 專案,當然 gradle 專案也可以透過 plugin 的方式。
Doc 6.7.2. Running as a Packaged Application:
事前準備,透過 spring initializr 啟一個簡單的Spring 專案,引入Spring Web 依賴,其中只有一個 Controller ,如下所示
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloworldController {
@GetMapping("/hello")
public ResponseEntity<String> hello() {
return new ResponseEntity<>("Hello World", HttpStatus.OK);
}
}
透過 Spring Boot Gradle or Maven 套件可以創建Spring 應用的可執行 jar 包。
實務上透過 spring initialzr 選擇 gradle 的專案內附 gradle wrapper ,故只要執行下方指令就能 build jar 包。
$ ./gradlew build
build 出現的 jar 包,會出現在 build/libs 目錄之下
再透過以下 java 指令去執行該 jar 包
java -jar helloworld-0.0.1.jar
下方透過指令啟動jar包
在執行應用的 jar 包的時候, 可以透過以下指令附加(attach) debugger 模式,注意下方圖中的紅色箭頭處,Listening for transport dt_socket at address:8080
$ java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n \
-jar helloworld-0.0.1.jar
Debug Mode 指令執行結果
參考資料
{官方} Running as a Packaged Application 文檔
https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.using-the-springbootapplication-annotation
java Application Remote Debugging
https://www.baeldung.com/java-application-remote-debugging