Spring Boot學習日誌(一)Hello World
目錄
一,系統環境
JDK:1.8.0_144
maven:3.5.2
二,使用IntelliJ IDEA建立專案
1,選擇專案型別
2,編輯專案資訊
這裡packaging可以選擇jar 或者 war
3,選擇需要的war包
剩下的直接Next就可以了
4,專案目錄
專案目錄分為
src
—–main 主目錄
———-java 程式碼目錄
———-resources 資源目錄
—–test 測試目錄
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication表示整個專案的入口,整個專案只有一個類可以有這個註解。
application.properties為配置檔案,專案配置一般都是寫在這個檔案裡。
三,HelloWorld
現在專案已經可以運行了
在DemoApplication中右鍵RunDemoApplication即可
控制檯會輸出
2018-02-01 13:48:09.229 INFO 820 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-02-01 13:48:09.295 INFO 820 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
表示專案已經執行在8080埠啦。
但是專案沒有任何的Controller,也就是我們自己寫的邏輯程式碼的訪問入口,首先建立一個HelloController類
在類名上加入@RestController註解,表示則Controller中的方法不會返回檢視,返回的內容直接就是方法內裡的內容。
在方法前加入 @RequestMapping註解,表示進入該方法的url路徑,比如@RequestMapping(value = “hello”),在localhost:埠/hello,就會返回hello裡的內容
@RestController
public class HelloController {
@RequestMapping(value = "hello")
public String hello(){
return "HelloWorld";
}
}
四,出錯
我建立專案時,packaging選擇的jar,如果選擇war的話,直接執行可能會出現錯誤:
Unregistering JMX-exposed beans on shutdown
原因是因為沒有載入到tomcat
pom.xml檔案裡面有這麼一段
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
這裡的
<scope>provided</scope>
provided表示這個專案已經有了這個依賴,所以這個依賴只會在編譯測試的時候用到,在實際執行的時候不會把這個依賴打包進去,所以執行一直失敗,把這一句話刪掉之後就可以正常運行了。