SpringBoot系列:4. SpringBoot-Web开发(静态资源classpath目录详解,图标,装配扩展SpringMVC)

文章目录结构

  1. SpringBoot-Web开发流程详解
    1.1:静态资源导入探究.
    1.2:首页和图标定制
    1.3:Thymelea模板引擎
    1.4:装配和扩展SpringMvc

前言

  1. 使用SpringBoot实现Web开发,需要解决的首要问题:
    ⑴ 第一:导入静态资源(html+CSS+JS)
    ⑵ 第二:首页访问的页面定制
    ⑶ 第三:JSP(写jps的地方)–>实现完成jsp的编写,就要学习模板引擎Thymeleaf
    ⑷ 第四:装配和扩展SpringMVC
    ⑸ 第五:增删改查
    ⑹ 第六:拦截器
    ⑺ 第七:扩展一个:国际化(即:实现中英文切换的问题)
  2. 以下演示一下使用Thymeleaf 模板引擎实现Web流程开发。

1. SpringBoot-Web开发流程详解

1.1 :静态资源导入探究

1. 访问静态资源的方式有两种:
- 第一种:webjars -->使用这种方式需导入JQ的依赖

<dependency>  
  <groupId>org.webjars</groupId>  
  <artifactId>jquery</artifactId>  
  <version>3.4.1</version>
</dependency>
-->然后网页访问-->localhost:8080/webjars/

- 第二种:在静态资源目录(resources)下,存在四个可存放静态资源
的位置(这里面可以存放-->.html,js等静态资源)
   "classpath(这里也可以成为静态资源resources目录):/META-INF/resources/", 
   "classpath(这里也可以成为静态资源resources目录):/resources/",  
   "classpath(这里也可以成为静态资源resources目录):/static/",   
   "classpath(这里也可以成为静态资源resources目录):/public/" 
↑上面的四个目录都可以任选一个用来存放静态资源。
-->然后网页访问-->localhost:8080/   
   
---------------------------------------------------

⑴ 对于上面的两种方式访问的静态资源,一般使用第二种,很少使用第
一种方式。
② 第二种方式四个目录下的静态资源访问优先级,如下所示↓:
⑴ resources > static(默认用该目录存放静态资源) > public 

③ 除了上面两种方式存放静态资源的路径并访问外,我们还可以自定义静
态资源的存放路径:
⑴ 可以自己通过配置文件来指定哪些文件夹是需要我们放静态资源文件的,在application.properties中配置。
⑵ 在.properties/.yml配置文件中输入:spring.resources.static-locations=classpath:/coding/,classpath:/linzk/
⑶ 以此来自定义存放静态资源的路径。
⑷ 一旦自己定义了静态文件夹的路径,原来的自动配置就都会失效了!

---------------------------------------------------

④ 我们将首页index.html可以存放在"图i1"这四个目录下的任意一个均可。

在这里插入图片描述
图i1

1.2 :首页和图标定制

. 注意:这里最新版本的SpringBoot没有这个定制访问:localhost:8080/** 网页后,显示我们设置的图标了。

⑴ 如果定制一个图标,在我们访问localhost:8080/*后在网页上显示,
就需要降SpringBoot的版本。
 
② 定制网页访问的图标
⑴ 与其他静态资源一样,Spring Boot在配置的静态内容位置中查找 
favicon.ico。如果存在这样的文件,它将自动用作应用程序的
favicon。

⑵ 以下设置网站图标操作
- 第一步:关闭SpringBoot默认图标(在配置文件中配置)
# 关闭默认图标
spring.mvc.favicon.enabled=false
- 第二步:自己放一个图标图片,名字设置为favicon.ico并存放在在静态资源目录下,
我放在 public 目录下。
- 第三步:清除浏览器缓存!刷新网页(再去访问localhost:8080/*),
发现图标已经变成自己的了!


在这里插入图片描述
图i2

1.3 :Thymeleaf模板引擎

1. Thymeleaf模板引擎介绍
模板引擎的作用就是我们来写一个页面模板,比如有些值呢,是动态的,我们写一些表达
式。而这些值,从哪来呢,就是我们在后台封装一些数据。 然后把这个模板和这个数据交给
我们模板引擎,模板引擎按照我们这个数据帮你把这表达式解析、填充到我们指定的位置,
然后把这个数据最终生成一个我们想要的内容给我们写出去,这就是我们这个模板引擎,不
管是jsp还是其他模板引擎,都是这个思想。只不过呢,就是说不同模板引擎之间,他们可能
这个语法有点不一样。其他的我就不介绍了,我主要来介绍一下SpringBoot给我们推荐的
Thymeleaf模板引擎,这模板引擎是一个高级语言的模板引擎,他的这个语法更简单。而
且功能更强大。这里在SpringBoot中来使用Thymeleaf模板。

2.Thymeleaf模板引擎的使用,
⑴ 第一步:导入Thymeleaf模板引擎的依赖
<!--thymeleaf-->
<dependency>  
  <groupId>org.springframework.boot</groupId>  
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

⑵ 第二步:我们只需要将.html页面放在类路径下的templates下,thymeleaf就可以帮我们
自动渲染了。使用thymeleaf什么都不需要配置,只需要将他放在指定的文件夹下即可!

⑶ 第三步:编写一个TestController
@Controller
public class TestController {        
    @RequestMapping("/t1")    
    public String test1(){        
        //classpath:/templates/test.html        
        return "test";   
         }    
}
⑷ 第四步:编写一个测试页面  test.html 放在 templates 目录下
<!DOCTYPE html>
<html lang="en">
<head>  
  <meta charset="UTF-8">  
  <title>Title</title>
  </head>
  <body>
  <h1>测试页面</h1>
</body>
</html>

⑸ 第五步:启动项目请求测试
- 启动IDEA的run(),网页输入-->localhost:8080/test,即可实现测试的结果。

⑹ 结论:
- 第一点:只要用到模板引擎thymeleaf,值需要导入对应的依赖就可以了!
- 第二点:然后将.html页面放在我们的templates目录下即可  
- 第三点:之后在controller编写接口类,实现跳转到我们的.html页面。
- 第四点:最后网页输入locahost:8080/controller的url-->即可实现.html页面的访问跳转。

1.4 :装配和扩展SpringMVC

① 对于SpringBoot创建的项目,默认自动帮我们做了很多配置。
② 因此如果我们要扩展SpringBoot MVC,可以自定义一个WebMvc的配置
类。
## 以下演示扩展SpringMVC的配置类
⑴ 第一步:创建一个config配置类
- 我们要做的就是编写一个@Configuration注解类,
- 并且类型要为WebMvcConfigurer,还不能标注@EnableWebMvc注解;
- 我们去自己写一个配置类;新建一个包叫config,写一个类MyMvcConfig
//因为类型要求为WebMvcConfigurer,所以我们实现其接口
//可以使用自定义类扩展MVC的功能
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
    //以下实现接管MVC配置,自定义扩展视图跳转配置
    @Override    
    public void addViewControllers(ViewControllerRegistry registry){
    // 浏览器发送/test , 就会跳转到test页面;        
   registry.addViewController("/test").setViewName("test");    
    }
}
⑵ controller接口测试
@Controller
public class TestController {

    @RequestMapping("/test")
    public String index() {
        return "test";
    }
}
⑶ 启动IDEA,网页访问:localhost:8080/test实现页面根据我们设置的方式进行跳转。

③ SpringBoot在自动配置很多组件的时候,先看容器中有没有用户自己配置的(如果用户自己配置@bean),如果有就用用户配置的,如果没有就用
自动配置的。如果有些组件可以存在多个,比如我们的视图解析器,就将
用户配置的和自己默认的组合起来!
④ 以后会在SpringBoot创建的项目下,写很多config配置类。
- 比如:XXXmvcconfig,zookeeperconfig,redisconfig等等各种
配置。
- 因此自定义这些xxxconfig配置类的时候,只要给他头部类标注一
个"@Configuration"就可以扩展Springmvc了。

-------------------------------------------------------

▲ 总结:
-SpringBoot中,有非常多的xxxConfiguration类,会帮助我们扩展配置,
- 只要看到"xxxConfiguration类"这种类型的类,我们就要注意了!注意看他扩展了什么配置。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值