Spring Boot/Spring MVC
先建立pom:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>gs-serving-web-content</artifactId>
<version>0.1.0</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
建立web controller:
src/main/java/hello/GreetingController.java
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class GreetingController {
@RequestMapping("/greeting")
public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
建立application.properties:
src/main/resources/application.properties
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
#如果按照一般web工程將頁面放在src/main/webapp/WEB-INF/jsp/,則配置字首
#spring.mvc.view.prefix=/WEB-INF/jsp/
#spring.mvc.view.suffix=.jsp
完整的application.properties 示例。
建立thymeleaf頁面:
spring boot不推薦使用jsp,因為在tomcat/jetty上jsp不能在巢狀的tomcat/jetty容器中解析,即不能在打包成可執行的jar的情況下解析 (直接run main函式或者打成可執行的jar包),只能是打成war包在非巢狀的tomcat容器才能看到效果。Spring Boot提供了預設配置的模板引擎主要有以下幾種:
- Thymeleaf
- FreeMarker
- Velocity
- Groovy
- Mustache
src/main/resources/templates/greeting.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
執行application:
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
因為使用了spring boot,到現在我們都沒有配置過任何.xml檔案,包括web.xml。接下來我們可以打包,執行。
java -jar target/gs-serving-web-content-0.1.0.jar
開啟瀏覽器 8080/greeting , 可以看到:
"Hello, World!"
8080/greeting?name=User 可以看到:
"Hello, User!"
配置預設頁面和靜態資源:
Spring Boot預設提供靜態資源目錄位置需置於classpath下,目錄名需符合如下規則:
- /static
- /public
- /resources
- /META-INF/resources
例如:/static/js,/static/css。index.html 一般作為預設頁面一般也配置在靜態資源路徑下,開啟 http://localhost:8080/ 即展示:
src/main/resources/static/index.html
<!DOCTYPE HTML>
<html>
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>Get your greeting <a href="/greeting">here</a></p>
</body>
</html>
在四個目錄下同名的html頁面優先順序先後為:/META-INF/resources > /resources > /static > /public。
一個完整的專案結構:
- root package結構:
com.example.myproject
。 - 應用主類Application.java置於root package下,我們放在root package下可以幫助程式減少手工配置來載入到我們希望被Spring載入的內容。
- 實體(Entity)與資料訪問層(Repository)置於
com.example.myproject.domain
包下。 - 邏輯層(Service)置於
com.example.myproject.service
包下。 - Web層(web)置於
com.example.myproject.web
包下。
相關文章
- spring、spring MVC、spring BootMVCSpring Boot
- Spring Boot + Mybatis + Spring MVC環境配置(四):MVC框架搭建Spring BootMyBatisMVC框架
- Spring MVC和Spring Boot的區別 - hackernoonMVCSpring Boot
- Spring MVC 到 Spring Boot 的簡化之路MVCSpring Boot
- 玩轉spring boot——MVC應用Spring BootMVC
- Spring Boot + Mybatis + Spring MVC環境配置(一) :Spring Boot初始化,依賴新增Spring BootMyBatisMVC
- Spring Boot + Mybatis + Spring MVC環境配置(三):DataSource配置Spring BootMyBatisMVC
- spring boot與spring mvc的區別是什麼?Spring BootMVC
- spring boot應用之spring mvc應用書目錄Spring BootMVC
- Spring Boot + Mybatis + Spring MVC環境配置(五):templates模板使用Spring BootMyBatisMVC
- Spring Boot + Mybatis + Spring MVC環境配置(二):Mybatis Generator配置Spring BootMyBatisMVC
- Spring Boot:Spring Boot配置MybatisSpring BootMyBatis
- Spring MVCSpringMVC
- spring - mvcSpringMVC
- 8、使用 Spring Boot 搭建的一個 Spring MVC 示例(持續更新中)Spring BootMVC
- Spring Boot (十三): Spring Boot 小技巧Spring Boot
- Spring MVC 零配置 / Spring MVC JavaConfigSpringMVCJava
- Spring Boot —— Spring SecuritySpring Boot
- Spring Boot:Spring Boot配置SwaggerSpring BootSwagger
- Spring Boot 2.0(八):Spring Boot 整合 MemcachedSpring Boot
- Spring Boot 參考指南(Spring Boot文件)Spring Boot
- Spring Boot學習6:Spring Boot JDBCSpring BootJDBC
- Spring Boot(十八):使用 Spring Boot 整合 FastDFSSpring BootAST
- Spring Boot(五):Spring Boot Jpa 的使用Spring Boot
- Spring BootSpring Boot
- spring mvc interceptorsSpringMVC
- spring - mvc - @ScheduledSpringMVC
- Spring Boot整合Spring BatchSpring BootBAT
- Spring Boot整合Spring SecuritySpring Boot
- Spring Boot整合Spring AopSpring Boot
- Spring Boot系列(四):Spring Boot原始碼解析Spring Boot原始碼
- Spring Boot系列(一):Spring Boot快速開始Spring Boot
- Spring Boot系列(一):Spring Boot 入門篇Spring Boot
- Spring Boot學習(一)——Spring Boot介紹Spring Boot
- Spring boot學習(三) Spring boot整合mybatisSpring BootMyBatis
- Spring Boot 2.0(四):使用 Docker 部署 Spring BootSpring BootDocker
- Spring Boot(十一):Spring Boot 中 MongoDB 的使用Spring BootMongoDB
- Spring Boot(十六):使用 Jenkins 部署 Spring BootSpring BootJenkins