springboot学习02(从搭建到熟悉)

springboot中访问静态资源

在这里插入图片描述

  1. 在创建的空的springboot项目中,编辑器自动默认创建我们可以看到的两个静态资源管理package,但是根据源码来看,其实还有很多存储静态资源访问的路径,且优先级还不同。

首先打开WebMvcAutoConfiguration.class文件,定位到添加静态资源管理这个函数即:

public void addResourceHandlers(ResourceHandlerRegistry registry) {
            if (!this.resourceProperties.isAddMappings()) {
                logger.debug("Default resource handling disabled");
            } else {
                this.addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
                this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
                    registration.addResourceLocations(this.resourceProperties.getStaticLocations());
                    if (this.servletContext != null) {
                        ServletContextResource resource = new ServletContextResource(this.servletContext, "/");
                        registration.addResourceLocations(new Resource[]{resource});
                    }

                });
            }
        }

分析:

if (!this.resourceProperties.isAddMappings()) {
                logger.debug("Default resource handling disabled");
            }

首先判断是否自定义了静态资源路径,如果有,那么就返回。
在这里插入图片描述
怎么自定义资源路径?往上找到,WebMvcProperties.class,点进去,就可以看到很多类的属性变量,我们在yaml文件中,对这些属性变量进行设置。同时,还有可以自定义资源路径。

在这里插入图片描述
我们可以看到,这个箭头指定的路径,是根目录下的所有包路径。所以理论上可以随意设置,取名字存储静态资源,前提是在yaml文件中配置好。

2. Webjars方式导入静态资源

this.addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");

maven依赖的方式,导入我们的静态资源。访问webjars官网,以依赖的方式,导入pom.xml文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后,我们在jar包管理中,展开jar包目录,就可以看到**/META-INF/resources/webjars/**下的静态资源,通过浏览器我们就可以访问了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
途中的五个位置都支持,静态资源的访问。没有的文件夹,就可以自己创建。
总结:

  1. 在springboot中,我们可以使用以下方式处理静态资源
    • webjars localhost:8080/webjars/
    • public,static,/**,resource, localhost:8080
  2. 优先级:resource>static(默认)>public

首页如何定制

在WebMvcAutoConfiguration.class文件中,定义了关于首页的定制代码,大致的意思是可以寻找我们所设置的静态路径下的设置的index.html文件,作为首页
在这里插入图片描述
源码设置的是寻找/**下的index.html。所以你理论上如果没有自定义设置,应该都可以访问到。

模板引擎

在springboot中,不支持jsp。需要引入模板引擎来访问页面。
在这里插入图片描述
pom.xml文件中,引入thymeleaf的依赖

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

查询thymeleafProperties.class文件后,会发现文件定义了templates的访问路径,即期文件夹下的模板文件.html。所以以后我们将我们的html文件放到这个templates下即可。
在这里插入图片描述
测试thymeleaf的语法:

@RequestMapping("/test")
    public String index(Model model){
        model.addAttribute("msg","hello,springboot!");
        return  "test";
    }
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
《所有的html元素都可以被thymeleaf替换接管,th: 元素名》
<!--<h1>test</h1>-->
<div th:text="${msg}"></div>
</body>
</html>

在这里插入图片描述
可以看到值被取出了。

扩展springMVC(未学习完)

在springboot中,有非常多的XXXXConfiguration帮助我们进行扩展配置,只要看见了这个东西,我们就要注意了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值