开发者社区> 程序猿v> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SpringBoot学习笔记-4:第四章 Spring Boot Web 开发(1)

简介: SpringBoot学习笔记-4:第四章 Spring Boot Web 开发
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

第四章 Spring Boot Web 开发

1、web 开发简介

https://start.spring.io/

  1. 创建 SpringBoot 应用,选中需要的模块
  2. 使用 SpringBoot 自动配置
  3. 编写业务代码
@AutoConfiguration 自动配置组件
@Properties 封装配置文件的内容

webjars&静态资源映射规则

1、webjars

配置类:WebMvcAutoConfiguration

webjars 以 jar 包的方式引入静态资源

https://www.webjars.org/


资源路径映射


/webjars/**


=>


classpath:/META-INF/resources/webjars/


添加 jquery 依赖


<dependency>

? ?<groupId>org.webjars</groupId>

? ?<artifactId>jquery</artifactId>

? ?<version>3.5.1</version>

</dependency>


访问路径


/webjars/jquery/3.5.1/jquery.js


2、静态资源映射规则


静态资源文件夹


classpath:/META-INF/resources/

classpath:/resources/

classpath:/static/

classpath:/public/

/ 当前项目根路径


默认静态文件下查找


# 欢迎页面

index.html


# 图标路径

favicon.ico


自定义静态资源文件路径,默认资源路径失效


spring.resources.static-locations=classpath:/hello/


引入 thymeleaf

JSP、Velocity、Thymeleaf、Freemarker

模板引擎

Template ${name}  + Data {"name": "Tom"}

=> TemplateEngine =>

output

Thymeleaf 依赖

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- 切换 thymeleaf version -->
    <!-- thymeleaf3 适配 layout2 -->
    <springboot-thymeleaf.version>2.1.1.RELEASE</springboot-thymeleaf.version>
    <thymeleaf-layout-dialect.version>2.0.0</thymeleaf-layout-dialect.version>
</properties>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
    <version>${springboot-thymeleaf.version}</version>
</dependency>

thymeleaf 语法

https://www.thymeleaf.org/

默认配置

public class ThymeleafProperties {
    private String prefix = "classpath:/templates/";
    private String suffix = ".html";
}

模板使用示例

package com.example.demo.controller;

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

import java.util.HashMap;

@Controller
public class IndexController {

    @RequestMapping("/hello")
    public String hello(HashMap<String, Object> map){
        map.put("name", "Tom");

        // 模板路径
        // src/main/resources/templates/about.html
        return "hello";
    }
}

模板:

src/main/resources/templates/about.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
  <head>
    <meta charset="UTF-8" />
    <title>Title</title>
  </head>

  <body>
    <h1>Hello</h1>
    <!-- 设置文本内容 -->
    <div th:text="${name}"></div>
  </body>
</html>

语法规则

th: 任意html属性,用来替换原生属性的值

th:text 改变文本内容(转义)
th:utext 改变文本内容(不转义)

th:attr
th:href
th:src

th:each
th:for

表达式

${} 变量表达式
    获取变量值
    获取变量属性
    调用方法
    内置基本对象: #ctx #session...
    内置工具对象:

*{} 选择表达式
    配合th:object使用

#{} 获取国际化内容

@{} 定义url

~{} 片段表达式

字面量
数学运算
布尔运算
比较运算
条件运算
特殊操作

示例


<!--文本输出-->

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


<!--循环遍历-->

<div th:each="pet: ${pets}">

?<div>[[${pet}]]</div>

</div>


<!--循环遍历-->

<div th:each="pet: ${pets}" th:text="pet"></div>


SpringMVC 自动配置原理

SpringBoot 对 SpringMVC 默认配置

自动配置

ViewResolver 视图解析器
根据方法返回值的到视图对象(View)
视图对象决定如何渲染、转发、重定向

Converter 类型转换器
Formatter 格式化器
HttpMessageConverters 转换请求响应
MessageCodesResolver 定义错误代码生成规则
WebDataBinder 数据绑定器

修改 SpringBoot 默认配置

优先使用用户配置@Bean/@Component

如果没有才自动配置

有些组件可以有多个

eg: ViewResolver 将用户配置和默认配置组合起来

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringBoot学习笔记-11:第十一章-SpringBoot 与检索
SpringBoot学习笔记-11:第十一章-SpringBoot 与检索
64 0
社区人口管理系统的分析与实现springboot设计
项目编号:BS-XX-088 开发运行环境: 开发工具:IDEA / ECLIPSE MYSQL: 5.7 JDK:1.8 Maven: 3.3.9 开发技术: 后台技术:Spring boot+ SpringMVC + MyBatisPlus,连接池采用 Druid,安全框架使用 Shiro,缓存使用ehcache 前台技术:Bootstrap + layer 实现 wx: baozai_7788 使用: 1,IDEA或ECLIPSE导入项目:配置MAVEN环境 2,MYSQL
24 0
Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
48 0
Java技术:SpringBoot实现邮件发送功能
邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助!
104 0
基于Springboot+Vue实现高校疫情防控系统
最近根据客户需要新研发了一个项目,本项目基于Springboot+Vue开发实现了一个前后台均有的校园疫情防控管理系统,整个系统设计界面美观,功能全面,适合做毕业设计使用。 前端主要的功能: 1. 用户注册登陆 2. 疫情新闻查看 3. 校务公开信息查看 4. 系统通知通告查看 5. 校园动态查看 6. 媒体校园查看 7. 个人中心管理: 老师:个人信息管理、健康信息上报、离校申请、我的请假查看 学生:个人信息管理、健康信息上报、请假审批 后台管理功能: 1. 校内新闻管理 2. 疫情新闻管理 3. 首页公告管理 4. 校务公开管理 5. 用户管理
466 0
毕业设计:基于Springboot+Vue+ElementUI实现疫情社区管理系统
本次开发设计的社区疫情管理系统,主要为一线的社区人员更好的管理辖区内人员疫情风险信息提供信息化的管理手段。本系统基于Springboot+Vue开发实现了一个前后端分离的信息化管理系统。系统功能完整,界面简洁大方。系统用户主要分为居民用户和管理员用户,居民注册登陆后主要可以在线提交自己的体温信息、外出信息、行程信息等,管理员用户主要管理和查看这些基础的信息数据。............
96 0
这么火的ES,SpringBoot结合ElasticSearch7实现多条件复合查询
SpringBoot结合ElasticSearch7实现多条件复合查询
30 0
基于Springboot实现商品进销存管理系统
本项目实现了基于springboot的进销存管理系统,主要用户开设网店的相关商品的进货、销售、库存的管理,功能比较完整,有着完备的权限管理系统,可以自行根据需要来设计角色和分配权限,权限的粒度可以做到页面级的权限控制,整个项目来讲比较优秀。主要实现的功能有如下几个模块: 基础管理模块:包含客户管理、供应商管理、商品管理三个子模块 进货管理模块:包含商品进货、退货、商品退货查询几个子查块 销售管理:包含商品销售、退货、销售退货查询几个子查块 系统管理:包含部门管理、菜单管理、权限管理、角色管理、用户管理五个子模块 其它管理:包含登陆日志查询、系统公告管理
49 0
SpringBoot动态多数据源的优雅实现
SpringBoot动态多数据源的优雅实现
206 0
来咯来咯!2021年,开发者对SpringBoot中实现约束验证,你懂得多少|牛气冲天新年征文
来咯来咯!2021年,开发者对SpringBoot中实现约束验证,你懂得多少|牛气冲天新年征文
49 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Java Spring Boot开发实战系列课程【第15讲】:Spring Boot 2.0 API与Spring REST Docs实战
立即下载
Java Spring Boot开发实战系列课程(第17讲):Spring Boot 2.0实战Docker容器Linux
立即下载
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题)
立即下载


http://www.vxiaotou.com