SpringBoot編寫Hello World

前面已經知道如何創建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,是不是很容易

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章