前面已經知道如何創建Spring Boot項目,我們就從Hello World開始我們的學習里程吧
引入 web 模塊
在pom.xml中添加支持web的模塊:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
我們的項目裏有一個類:
@SpringBootApplication //開啓組件掃描和自動配置
public class SpringWebApplication {
public static void main(String[] args) {
SpringApplication.run(SpringWebApplication.class, args);//負責啓動引導應用程序
}
}
@SpringBootApplication開啓了Spring的組件掃描和Spring Boot的自動配置功能。實際上,@SpringBootApplication將三個有用的註解組合在了一起。
- Spring的@Configuration:標明該類使用Spring基於Java的配置。
- Spring的@ComponentScan:啓用組件掃描,這樣你寫的Web控制器類和其他組件才能被自動發現並註冊爲Spring應用程序上下文裏的Bean。
- Spring Boot 的 @EnableAutoConfiguration : 這個不起眼的小注解也可以稱爲@Abracadabra,就是這一行配置開啓了Spring Boot自動配置的魔力,讓你不用再寫成篇的配置了。
SpringWebApplication 還是一個啓動引導類。要運行Spring Boot應用程序有幾種方式,其中包含傳統的WAR文件部署。但這裏的main()方法讓你可以在命令行裏把該應用程序當作一個可執行JAR文件來運行。這裏向SpringApplication.run()傳遞了一個SpringWebApplication 類的引用,還有命令行參數,通過這些東西啓動應用程序。 實際上,就算一行代碼也沒寫,此時你仍然可以構建應用程序嚐嚐鮮。要構建並運行應用程序,最簡單的方法就是用Gradle的bootRun任務:
$ gradle bootRun
bootRun任務來自Spring Boot的Gradle插件,此外,你也可以用Gradle構建項目,然後在命令行裏用java來運行它:
$ gradle build
...
$ java -jar xxx.jar
若你在命令行使用gradlew 那麼你使用的是存放在~/.gradlew/wrapper/dists路徑下面的,通過在gradle/wrapper/gradle-wrapper.properties文件指定的gradle腳本。而你若使用gradle命令行,那麼你使用的是~/.gradle下面的gradle腳本。
如果是使用mvn構建的項目,我們可以通過Maven命令運行項目:
mvn spring-boot:run
應用程序應該能正常運行,啓動一個監聽8080端口的Tomcat服務器。要是願意,你可以用瀏覽器訪問http://localhost:8080, 但由於還沒寫控制器類, 你只會收到一個HTTP 404 錯誤,看到錯誤頁面。
好了,現在我們寫一個控制器類吧,我們拿官網的例子:
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
}
@RestController 的意思就是 Controller 裏面的方法都以 json 格式輸出。運行程序,然後在在網頁裏打開127.0.0.1:8080/
我們來研究下這個HelloController 類,先看下官網的解釋:
大概意思就是,添加了@RestController 註解意味着Spring MVC可以使用它來處理Web請求,當從瀏覽器調用或在命令行上使用curl時,使用@RequestMapping("/")標註的方法將返回純文本。 @RestController 註解是Spring 4.0引入的,查看源碼可知其包含了 @Controller 和 @ResponseBody 註解。在以前的版本,返回json需要@ResponseBody配合@Controller。@RestController專門爲響應內容式的 Controller 而設計的,可以直接響應對象爲JSON。
看,我們幾乎什麼都沒做,就實現了我們的hello world,是不是很容易