本篇介紹如何使用STS建立一個簡單的spring boot專案。
STS(Spring Tool Suite)是基於eclipse的開發環境(IDE),並加強了開發Spring應用程式的功能,所以操作介面幾乎同eclipse。或是你也可以在既有的eclipse安裝Spring Tools (STS) plug-in來建立spring-boot專案。
STS安裝方式同eclipse。下載好STS後,將壓縮檔(本範例為spring-tool-suite-3.9.5.RELEASE-e4.8.0-win32-x86_64.rar
)解壓縮至安裝目錄(本範例的安裝目錄為D:\MyProject\spring-boot
)。
解壓縮後可看到一個sts-bundle
資料夾,裡面有三個資料夾legal
,pivotal-tc-server
及sts-3.9.5.RELEASE
sts-3.9.5.RELEASE
資料夾中即有STS的執行檔STS.exe
,還有STS的初始設定檔STS.ini
。
通常我會將eclipse的JVM指向所在路徑,及設定預設encode為UTF-8,所以開啟STS.ini
並加入下面設定並存檔。
-vm
D:\Applications\Java\jre1.8.0_171\bin\javaw.exe (請改為你系統中Java的執行檔位置)
-Dfile.encoding=UTF-8
接著開啟STS,指定好你的workspace。
在點選上方功能選單的File -> New -> Spring Starter Project
。
接著填寫專案maven 的Group,Artifact,Version等。設定好後按Next >。
在左側的選單找到Web -> Web及Core -> DevTools(基本上只需要Web即可。至於DevTools提供專案自動重啟功能。)並勾選然後按Finish完成。
完成後便可以在STS左側的Package Explore看到新建的spring boot專案。專案目錄結構如下。
SpringBootDemoApplication.java
是依前面maven設定時的命名而自動生成的,為spring boot應用程式執行的進入點。內容如下
package idv.matt.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootDemoApplication.class, args);
}
}
一般來說在spring boot應用程式中掛有@SpringBootApplication
的main程式為執行時的進入點。同時也是主要的配置類別。
@SpringBootApplication
其實包含了@EnableAutoConfiguration
,@ComponentScan
及@Configuration。
三種annotation的設定效果。
@SpringBootApplication
會掃描所在類別的package及其子package中掛有@Component
,@Controller
,@Service
,@Repository
等component類別並註冊為spring bean。
本範例@SpringBootApplication
所在類別SpringBootDemoApplication
的package為idv.matt.demo
,所以只有idv.matt.demo
及子package下(例如idv.matt.demo.controller
或idv.matt.demo.service.impl
)的component類會被掃描。
接著試著運行看看,在專案上按右鍵 -> Run As -> Spring Boot App
,然後在console便會出現下面訊息,代表專案已經開始運行了。
如果本篇有幫助到您,幫忙點一下廣告支持,感恩。
11:59:12.976 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
11:59:12.976 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-actuator/target/classes/, /spring-boot-devtools/target/classes/, /spring-boot/target/classes/, /spring-boot-starter-[\w-]+/, /spring-boot-autoconfigure/target/classes/, /spring-boot-starter/target/classes/]
11:59:12.992 [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/D:/MyProject/spring-boot/workspace/spring-boot-demo/target/classes/]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.4.RELEASE)
2018-09-04 11:59:13.273 INFO 9468 --- [ restartedMain] idv.matt.demo.SpringBootDemoApplication : Starting SpringBootDemoApplication on matt-PC with PID 9468 (D:\MyProject\spring-boot\workspace\spring-boot-demo\target\classes started by matt in D:\MyProject\spring-boot\workspace\spring-boot-demo)
2018-09-04 11:59:13.273 INFO 9468 --- [ restartedMain] idv.matt.demo.SpringBootDemoApplication : No active profile set, falling back to default profiles: default
2018-09-04 11:59:13.335 INFO 9468 --- [ restartedMain] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@3ae07be9: startup date [Tue Sep 04 11:59:13 CST 2018]; root of context hierarchy
...
...
2018-09-04 11:59:15.174 INFO 9468 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
2018-09-04 11:59:15.190 INFO 9468 --- [ restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-09-04 11:59:15.237 INFO 9468 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-09-04 11:59:15.237 INFO 9468 --- [ restartedMain] idv.matt.demo.SpringBootDemoApplication : Started SpringBootDemoApplication in 2.245 seconds (JVM running for 3.047)
沒有留言:
張貼留言