【Spring Boot自學筆記一】項目搭建+Hello World+主頁配置

關於Spring Boot

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。

創建Spring Boot

比起創建一個SSM框架的項目,Spring Boot項目的創建極其簡單,我們不必再配置大量的xml文件,Spring Boot已經使用大量的自動配置類幫我們解決了這個問題。若要修改部分配置信息,我們只需要在properties文件中添加即可。

筆者將演示使用intellij idea創建一個spring boot項目的全過程,比起一個ssm項目,他將非常簡單

  1. 新建一個項目,選擇Spring Initializr:
    在這裏插入圖片描述
  2. 爲自己的項目命名,並選擇項目類型(Maven/Gradle),打包方式(jar/war)和java版本,筆者使用Maven創建項目:
    在這裏插入圖片描述
  3. 根據勾選自己需要的包,筆者這裏只選擇Spring Web以實現一個簡單的Web項目:
    在這裏插入圖片描述
  4. 指定項目名和路徑,Finish!
    在這裏插入圖片描述
    創建完後,刪除沒用的文件,目錄如下所示,項目就創建完成了。什麼,你說配置Tomcat?除了不需要寫xml,Spring Boot不需要我們自己配置Tomcat,它已經幫我們內置了!
    在這裏插入圖片描述

Hello World!

新建一個controller包,在包裏創建一個控制器。

再次注意,spring boot鼓勵使用全註解來代替xml:

  • @RestController指定這個類是一個控制器,而Rest會把控制器返回的內容轉換成json
  • @RequestMapping指定請求的鏈接,我們還可以用其中的method參數指定請求類型(post/get/put/delete),不過有一個更符合規範的方法是使用@PostMapping/@GetMapping…來指定請求類型
package com.koorye.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
  @RequestMapping("/hello")
  public String index() {
    return "hello world";
  }
}

接下來,讓我們啓動項目:
Spring Boot內置Tomcat的默認端口號是8080:
在這裏插入圖片描述
嗯?怎麼是404?不要着急,在url後加上/hello:
在這裏插入圖片描述
這樣就得到控制器返回的字符串啦!

設置默認主頁

這種方法可以得到想要的內容,可是開頭的404怎麼解決呢?

方法一 控制器

前期準備

在templates中新建一個index.html,內容隨意:
在這裏插入圖片描述

引入thymeleaf包

一定一定要引入thymeleaf(或者其他模板引擎)! 否則spring boot將不會尋找templates目錄中的文件:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

實現控制器

注意這裏與前面不同,@Controller而不是@RestController 原因是RestController會把返回數據轉換成json,就無法正常解析鏈接了。

spring boot會自動給index加上前綴templates/和後綴.html ,最後完整路徑就是templates/index.html.

還有一點需要注意,spring boot會自動在templates文件夾中尋找名爲index.html的文件作爲首頁 ,所以即使@RequestMapping中設定爲任意路徑,打開後也會直接跳轉到index.html.

package com.koorye.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
  //即使設置成@RequestMapping("/aaabbbccc")也可以找到主頁
  @RequestMapping("/index")
  public String toIndex() {
    return "index";
  }
}

方法二 配置類

然而,使用控制器跳轉頁面十分不靈活,我們在這裏有更好的辦法——配置類。

我們刪去原先的Controller類,新建一個config包,新建一個MVCConfig類,輸入以下內容。

如之前所說,spring boot會自動給網頁名添加前後綴,這裏的index會被修改爲templates/index.html.

這樣,無論是直接訪問localhost:8080還是localhost:8080/index,我們都可以找到主頁啦。

package com.koorye.demo.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MVCConfig implements WebMvcConfigurer {
  @Override
  public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/").setViewName("index");
    registry.addViewController("/index").setViewName("index");
  }
}

最後附上完整路徑:
在這裏插入圖片描述

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