玩转Spring Boot框架教程06之web开发

四、Spring Boot WEB开发

4.1 web开发了解

在以前的方式开发WEB项目时可以选择整合SpringMVC或Struts2等MVC框架,导入相关jar包,开发工具选择eclipse集成tomcat后,将开发好的项目部署到tomcat服务器。

在基于SpringBoot开发WEB项目较为简单,Spring Boot已经集成了web开发相关的组件,在pom文件中导入配置如下:

玩转Spring Boot框架教程06之web开发

新建项目

玩转Spring Boot框架教程06之web开发

勾选Web

玩转Spring Boot框架教程06之web开发

新建好WEB项目以后,pom文件里面会自动导入Spring-boot-starter-web配置,此配置已经为我们集成了SpringMVC的相关依赖以及内嵌了Servlet容器Tomcat、jetty、Undertow。

4.2 web开发静态资源相关

在web开发中避免不了图片、css、js等静态资源访问,Spring Boot已经提供对提供默认配置以及较好的支持。

4.2.1静态资源路径映射

  Spring Boot 默认将 /** 所有访问映射到以下目录:

classpath:/static

classpath:/public

classpath:/resources

classpath:/META-INF/resources

测试:

在src/main/resources下新建以下几个目录,并在每个目录下都放一张图片。

玩转Spring Boot框架教程06之web开发

启动Spring Boot程序,打开浏览器输入以下几个地址:

http://localhost:8080/1.jpg

http://localhost:8080/2.jpg

http://localhost:8080/3.jpg

http://localhost:8080/4.jpg

http://localhost:8080/5.jpg

当浏览器访问资源时,会到META-INF/resources、public、resources、static这几个路径下去找相应的资源,能找到就返回该资源。

经过测试会发现,http://localhost:8080/5.jpg 访问不成功,原因就是aaa这个目录不在SpringBoot默认映射范围之内。

4.2.2自定义静态资源路劲映射

如果有特殊需要可以将自定义的目录进行映射,如映射aaa目录,在配置文件加入以下内容:

spring.resources.static-locations=classpath:/

启动Spring Boot程序继续访问http://localhost:8080/5.jpg,成功!

4.3模板引擎

模板引擎介绍:

模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。在Spring Boot内嵌的容器中Tomcat、Jetty不支持以jar包的方式运行jsp,Undertow不支持jsp。

在Spring boot中提供了多种模板引擎Thymeleaf、FreeMarker、Velocity、Groovy、Mustache等,Spring Boot推荐Thymeleaf模板,因为Thymeleaf对SpringMVC支持比较好。

4.4 Thymeleaf模板引擎介绍:

Thymeleaf是Web和独立环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本。

Thymeleaf的主要目标是提供一种优雅和高度可维护的创建模板的方式,对SpringMVC支持较好,使用Thymeleaf可以完全替代jsp。

Thymeleaf特点如下:

1、  Thymeleaf在没有网络的情况也可以运行,浏览器打开可以看到静态效果;支持html原型,服务端有数据返回会将静态数据替换掉,实现前后端分离;

2、  Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、改jstl、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言;

3、  Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能;

4.5 Thymeleaf入门案例

1、在pom文件中引入依赖

<dependency>

     <groupId>org.springframework.boot</groupId>

     <artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

2、配置视图解析器

spring-boot很多配置都有默认配置,比如默认页面映射路径为

classpath:/templates/*.html 

玩转Spring Boot框架教程06之web开发

以上这些配置除了Spring.thymeleaf.cache=false以外,开发时关闭缓存,不然没法看到实时页面,其他配置其他的都可以使用默认配置即可,有特殊需要时再进行修改。

通过ThymeleafProperties类源码了解默认配置。

玩转Spring Boot框架教程06之web开发

玩转Spring Boot框架教程06之web开发

3、编写控制器

 

@Controller

publicclass Web01Controller {

   

    @RequestMapping("/")

    public String index(Model model) {

    model.addAttribute("name", "码到功成学院");

    System.out.println("请求到了。。。。。。。。");

        return"index";

    }

}

注意:

 @RequestMapping() 里面的值,不能和返回模板名字一样,否则将不能成功。

1、       编写模板

<!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org">

<head>

<meta charset="UTF-8"/>

<title>Spring boot thymeleaf</title>

</head>

<body>

 <h1 th:text="${name}">hello</h1>

</body>

</html>

2、启动SpringBoot程序打开浏览器访问

玩转Spring Boot框架教程06之web开发