springboot-web开发

SpringBoot的web开发

​ SpringBoot的web开发,实际上SpringBoot的Web开发与 普通Spring MVC的web开发非常接近,没有太大的区别。所以只要掌握了Spring MVC的开发,就能很快上手SpringBoot 的Web开发。

SpringBoot的web开发,基本可以分为以下三步:

  1. 创建工程
  2. 编写业务代码
  3. 编写前端页面

springboot-web开发_第1张图片

1,静态资源映射规则

规则一:引入公共资源

我们都知道在spring中,我们都是将所有的资源放在webapp目录下的,但是在springboot中,我们是将这些资源放在哪里呢?
这时我们来看看这个配置
springboot-web开发_第2张图片

所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找资源。所谓webjars,就是用jar包的方式,来引入前端资源。比如我们想要引入jquery,我们可以去找jquery的maven依赖, 将依赖放入pom文件,就可以用webjars的方式来引入jquery。

当我们引入jquery后,如何进行访问呢?

localhost:8080/webjars/jquery/3.3.1-1/jquery.js 实际上在jquery的jar包中,这个资源被放在了/META-INF/resources/webjars/ jquery/3.3.1-1/src/jquery.js中

springboot-web开发_第3张图片

规则二:引入自添加的资源

​ “/** ” 访问当前项目的任何资源,若未找到,则去(静态资源的文件夹)找映射。静态资源文件夹如下:

  • classpath:/META-INF/resources
  • classpath:resources
  • classpath:static
  • classpath:public

将静态资源放入这些路径下,就可以直接访问,不需要加上这些文件夹的路径

在这里插入图片描述

规则三:欢迎页

​ 静态资源文件夹下的所有index.html页面,被”/** ”映射 在没有添加index.html时,我们访问localhost:8080,会找不到页面。

springboot-web开发_第4张图片

规则四:图标文件

​ 所有的 **/favicon.ico 都在静态资源文件下寻找 favicon.ico是一个网站的图标文件。我们可以通过修改这个文件来自定义网站的图标。我们把任意一个资源文件夹下 放置自定义的favicon.ico文件,重新启动项目,就可以观察到网站图标的变化。
springboot-web开发_第5张图片

2,模板引擎Thymeleaf

​ 由于SpringBoot采用嵌入式的Tomcat,所以默认不支持JSP页面。但如果使用纯静态的html开发,又非常的繁琐,工作量很大。因此,SpringBoot推荐使用模板引擎。常见的模板引擎有JSP、velocity、Freemarker、Thymeleaf等。 SpringBoot推荐使用Thymeleaf引擎。它具有语法简单、功能强大等特点。

springboot-web开发_第6张图片

1,Thymeleaf规则

​ 一、自动配置规则 Thymeleaf自动配置规则在spring-boot-autoconfiggure里面,我们需要根据配置规则来使用Thymeleaf。Thymeleaf的配 置规则封装在ThymeleafProperties里面。

springboot-web开发_第7张图片

​ 二,通过ThymeleafProperties封装的规则,我们可以看到它有一个默认的前缀"classpath:/templates/"和一个默认的后缀 “.html”,由此可知,只要我们把HTML页面放在classpath:/templates/,thymeleaf就能自动渲染。
springboot-web开发_第8张图片

2,Thymeleaf语法

1.导入命名空间

在html页面引入,其作用是提示代码

2.获取请求域值 通常情况下,我们获取值用${xxx},在Thymeleaf中,利用th:text改变当前元素里面的文本内容,如div,需要注意的 是,div和th之间是空格

Thymeleaf表达式语法

  • Variable Expressions: ${…}:获取变量值 获取对象的属性,调用方法,使用内置的基本对象或者内置的一些工具对象。
  • Selection Variable Expressions: *{…} 选择表达式:和 在功能上是一样 . 例如: t h : o b j e c t = " {}在功能上是一样. 例如:th:object=" 在功能上是一样.例如:th:object="{session.user}:
  • Message Expressions: #{…}:获取国际化内
  • Link URL Expressions: @{…}:定义URL
  • Fragment Expressions: ~{…}:片段引用表达式

3,扩展SpringMVC

​ 不编写配置文件的前提下,我们可以编写一个配置类(@Configuration)来实现配置。其是 WebMvcConfigurerAdapter类型,不能标注@EnableWebMvc。优点是既保留了所有的自动配置,也能 用我们扩展的配置。

1.新建一个配置类MyMvcConfig,利用@Configuration注解来标识这是一个配置类,并集成抽象类 WebMvcConfigurerAdapter。

2.添加一个视图映射规则,使得请求映射到success页面。如下:

3.启动项目,访问gosuccess,可进入success页面

springboot-web开发_第9张图片

原理

  • WebMvcAutoConfiguration是SpringMVC的自动配置类
  • 在做其他自动配置时会导入;@Import(EnableWebMvcConfiguration.class)
  • 容器中所有的WebMvcConfigurer都会一起起作用
  • 我们的配置类也会被调用,最终SpringMVC的自动配置和我们的扩展配置都会起作用。

4,全面接管SpringMVC

​ 全面接管即SpringBoot对SpringMVC的自动配置不需要了,所有都是我们自己配置;所有的 SpringMVC的自动配置都失效了,实现方式就是需要在配置类中添加@EnableWebMvc。

springboot-web开发_第10张图片

你可能感兴趣的:(框架,spring,boot,java)