当前位置:   article > 正文

springboot web开发(springboot学习笔记7)_addresourcehandlers

addresourcehandlers

springboot开发

自动装配

springboot帮我们配置了什么?能不能进行修改?能修改哪些东西?能不能扩展?

  • xxxAtutoconfiguration(spring-boot-autoconfigure.jar包下)向容器中自动配置文件
  • xxxProperties:自动装配类,装配配置文件中自定义的内容

解决的问题:

  • 导入静态资源(html,css,js等等)
  • 首页制作
  • jsp,模板引擎(Thymeleaf)
  • 装配扩展springmvc
  • 增删改查
  • 拦截器
  • 国际化(了解)

一、静态资源

 1、创建springboot项目,添加web依赖

测试环境是否搭建好,在主类文件下创建controller包,然后创建一个controller测试

  1. //以后工作中就是写接口,接口就是这样一个Controller
  2. @RestController//不用跳转视图,直接返回字符串都可以
  3. public class HelloController {
  4. @RequestMapping("/hello")
  5. public String test(){
  6. return "HelloController";
  7. }
  8. }

ok,环境搭建成功

2、静态资源处理器类addResourceHandlers 

  1. @Override
  2. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  3. //获取静态资源方法1
  4. if (!this.resourceProperties.isAddMappings()) {
  5. logger.debug("Default resource handling disabled");
  6. return;
  7. }
  8. Duration cachePeriod = this.resourceProperties.getCache().getPeriod();
  9. CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();
  10. //获取静态资源方法2
  11. if (!registry.hasMappingForPattern("/webjars/**")) {
  12. customizeResourceHandlerRegistration(registry.addResourceHandler("/webjars/**")
  13. .addResourceLocations("classpath:/META-INF/resources/webjars/")
  14. .setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));
  15. }
  16. String staticPathPattern = this.mvcProperties.getStaticPathPattern();
  17. if (!registry.hasMappingForPattern(staticPathPattern)) {
  18. customizeResourceHandlerRegistration(registry.addResourceHandler(staticPathPattern)
  19. .addResourceLocations(getResourceLocations(this.resourceProperties.getStaticLocations()))
  20. .setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));
  21. }
  22. }

方法1:

什么是webjars:可以搜索一个官网,找到jquery这类对应的maven依赖。

导入之后可以发现,addResourceHandlers 中的查找静态资源的方法对应文件夹

 启动项目可以根据路径找到导入的静态资源。这就是通过映射

 方法2:

注意:自己键的文件夹名一定要对,resources(一定带s的)

 会发现访问静态资源的顺序完全是按照源码写的(字符串数组)顺序来,从大到小

resources(一般放upload上传的文件)

static(一般放图片以及js等静态资源,)

public(一般放某些公共资源)

总结:

1、在springboot中,可以使用以下方式处理静态资源

映射的路径就是访问的方式

  • webjars        映射到localhost:8080/webjars/
  • public,static,/**(根目录),resources     都映射到localhost:8080/

2、优先级

resources(一般放upload上传的文件)

static(一般放图片以及js等静态资源,)

public(一般放某些公共资源)

二、首页和图标定制

编写一个html放在public

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <h1>首页</h1>
  9. </body>
  10. </html>

图标需要再去学,就是网页上面名字左边那个小图标。

三、模板引擎(Thymeleaf

使用:

1、直接导入starter启动器

  1. <!--thymeleaf模板引擎-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  5. </dependency>

作用:页面模板

查看源码:ThymeleafProperties(快速搜索文件shift*2)

发现thymeleaf源码里面有一个html格式的视图解析器

以及其能识别到templates文件夹

 2、在templates目录下编写一个html页面

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <h1>test</h1>
  9. </body>
  10. </html>

3、编写controller接口请求捕获跳转到这个页面

  1. //在templates目录下的所有页面,只能通过controller跳转
  2. //这个需要模板引擎的支持 thymeleaf
  3. @Controller//这个注解controller会跳转视图(jsp页面)
  4. public class IndexController {
  5. @RequestMapping("/test")
  6. public String index(){
  7. return "test";
  8. }
  9. }

4、通

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1022074
推荐阅读
相关标签
  

闽ICP备14008679号