静态资源访问
在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。

默认配置
Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:

/static
/public
/resources
/META-INF/resources
举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/D.jpg。如能显示图片,配置成功。

渲染Web页面
在之前的示例中,我们都是通过@RestController来处理请求,所以返回的内容为json对象。那么如果需要渲染html页面的时候,要如何实现呢?

模板引擎
在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。

Spring Boot提供了默认配置的模板引擎主要有以下几种:

Thymeleaf
FreeMarker
Velocity
Groovy
Mustache
Spring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性,具体可见后文:支持JSP的配置

当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。

Thymeleaf

Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。

Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。

示例模板:

<table><thead><tr><th th:text="#{msgs.headers.name}">Name</td><th th:text="#{msgs.headers.price}">Price</td></tr></thead><tbody><tr th:each="prod : ${allProducts}"><td th:text="${prod.name}">Oranges</td><td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td></tr></tbody>
</table>

可以看到Thymeleaf主要以属性的方式加入到html标签中,浏览器在解析html时,当检查到没有的属性时候会忽略,所以Thymeleaf的模板可以通过浏览器直接打开展现,这样非常有利于前后端的分离。

在Spring Boot中使用Thymeleaf,只需要引入下面依赖,并在默认的模板路径src/main/resources/templates下编写模板文件即可完成。

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

完整项目的源码来源 技术支持1791743380

SpringCloud SpringBoot mybatis分布式微服务云架构开发Web应用相关推荐

  1. spring cloud + spring boot + springmvc+mybatis分布式微服务云架构

    做一个微服务架构需要的技术整理: View: H5.Vue.js.Spring Tag.React.angularJs Spring Boot/Spring Cloud: Zuul.Ribbon.Fe ...

  2. Spring Cloud Spring Boot mybatis分布式微服务云架构(三)属性配置文件详解(1)

    2019独角兽企业重金招聘Python工程师标准>>> 相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring ...

  3. Spring Cloud Spring Boot mybatis分布式微服务云架构(一)快速入门

    2019独角兽企业重金招聘Python工程师标准>>> 快速入门 本章主要目标完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对Spring ...

  4. Spring Cloud Spring Boot mybatis分布式微服务云架构(五)构建RESTful API

    2019独角兽企业重金招聘Python工程师标准>>> 首先,回顾并详细说明一下在快速入门中使用的@Controller.@RestController.@RequestMappin ...

  5. SpringCloudSpringBootmybatis分布式微服务云架构-hystrix参数详解

    简介 上节我们讨论了hystrix+feign+ribbon,但是可能很多人都知道hystrix还有线程隔离,信号量隔离,等等各种参数配置,在这几就记录下hystrix的参数, 一.hystrix参数 ...

  6. Spring Cloud分布式微服务云架构—源码结构图

    分布式.微服务.云架构 JAVA语言开发.跨平台.高性能.高可用.安全.服务化.模块化.组件化.驱动式开发模式 源码结构 JAVA开发.maven模块化构建.服务独立打包.分布式部署.持续集成.版本控 ...

  7. 运行截图之SpringCloud企业分布式微服务云架构快速开发平台源码

    鸿鹄云架构系统管理平台是一个大型企业.分布式.微服务.云架构的JavaEE体系快速研发平台,基于模块化.微服务化.原子化.热部署的设计思想,使用成熟领先的无商业限制的主流开源技术(Spring Clo ...

  8. SpringCloud企业分布式微服务云架构快速开发平台源码之运行截图

    鸿鹄云架构系统管理平台是一个大型企业.分布式.微服务.云架构的JavaEE体系快速研发平台,基于模块化.微服务化.原子化.热部署的设计思想,使用成熟领先的无商业限制的主流开源技术(Spring Clo ...

  9. 学习二叉树之SpringCloud+Spring Boot+Mybatis+ElementUI 大型企业分布式微服务云架构源码

     前言 树是数据结构中的重中之重,尤其以各类 二叉树为学习的难点.一直以来,对于树的掌握都是模棱两可的状态,现在希望通过写一个关于二叉树的专题系列.在学习与总结的同时更加深入的了解掌握二叉树.本系列文 ...

最新文章

  1. 瑞典皇家理工学院工程实例:Sound localization
  2. 【JS】我的JavaScript学习之路(6)
  3. 【Pytorch神经网络理论篇】 33 基于图片内容处理的机器视觉:目标检测+图片分割+非极大值抑制+Mask R-CNN模型
  4. python批量导入网页信息_python批量导入数据进Elasticsearch的实例
  5. 用java绘制一个光照球体_HTML5 Canvas一个基本光线行进的球体光照效果
  6. 气候变化与 计算机网络,北京理工大学:气候变化综合评估模式研究获立项
  7. url 编码和解码网址
  8. java的JVM与垃圾回收机制
  9. OKHTTP深入浅出(二)----基本用法
  10. 昆仑通态屏幕制作(连载5)---基础篇(串口接收,文本与灯显示)
  11. 大文件传输的三种方式
  12. unantu下的tmp文件夹_Ubuntu根目录下各文件夹的功能详细介绍
  13. 联想拯救者R720在重装Win10系统时无法识别固态硬盘的解决方法
  14. 战地3一直显示服务器断开连接,战地3一直Joining Server.解决办法_游侠网
  15. Lake Counting S
  16. BT源代码学习心得(六):跟踪服务器(Tracker)的代码分析(初始化)
  17. 泰森多面体Voronoi 3D-V5.0 功能介绍
  18. Windows 七种截图方式 快捷键 系统自带 工具软件
  19. kali下载速度慢_Linux系统软件安装更新下载太慢解决方法(转载)
  20. Vue.js使用CSS美化

热门文章

  1. ELK收集tomcat日志
  2. Python3中使用json将字典转为json文件中的乱码问题
  3. 【Hive】Hive的三种交互方式
  4. 解决 ORA-28001: the password has expired 问题
  5. 解决Spring Boot 拦截器注入service为空的问题
  6. iview 按需引入解决加载慢的问题
  7. Vuejs 使用 lib 库模式打包 umd 解决 NPM 包发布的问题
  8. Array.prototype.slice.call()如何工作?
  9. win11如何查看下载速度 Windows11查看下载速度的方法介绍
  10. win11快捷键怎么使用 Windows11快捷键的使用方法