關於Spring Boot
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。
創建Spring Boot
比起創建一個SSM框架的項目,Spring Boot項目的創建極其簡單,我們不必再配置大量的xml文件,Spring Boot已經使用大量的自動配置類幫我們解決了這個問題。若要修改部分配置信息,我們只需要在properties文件中添加即可。
筆者將演示使用intellij idea創建一個spring boot項目的全過程,比起一個ssm項目,他將非常簡單:
- 新建一個項目,選擇Spring Initializr:
- 爲自己的項目命名,並選擇項目類型(Maven/Gradle),打包方式(jar/war)和java版本,筆者使用Maven創建項目:
- 根據勾選自己需要的包,筆者這裏只選擇Spring Web以實現一個簡單的Web項目:
- 指定項目名和路徑,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");
}
}
最後附上完整路徑: