springboot-web自动装配的原理

SpringBoot Web开发

项目里面都是jar

没有webapp的地方!那我们怎么去进行web开发。

SpringBoot最大的特点就是:自动装配

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

  • xxxxAutoConfiguration… **向容器中自动配置组件 ** 【这就是自动装配】
  • xxxxProperties: 自动配置类,装配配置文件中自定义的一些内容! 【这一步就是修改】

要解决的问题

  • 导入静态资源
  • 首页
  • 原本的项目就是写jsp来展示页面的,现在没有了,就需要学习==模板引擎Thymeleaf==
  • 学习装配和扩展SpringMVC
  • 增删改查
  • 拦截器
  • 国际化!

静态资源

在springboot,可以使用下面的方式处理静态资源

WebMvcAutoConfiguration里面就是静态资源的配置

在那些包里面找到相对应的包,包里面有相对应的方法,再找到添加资源的方法addResourceHandlers

springboot-web自动装配的原理_第1张图片

  1. 第一种方式:就是自定义的方式,在yaml配置文件中定义,后面的2 3就失效了

    自定义静态资源路径

    我们也可以自己通过配置文件来指定一下,哪些文件夹是需要我们放静态资源文件的,在application.yaml中配置:

    spring.resources.static-locations=classpath:/jsp/,classpath:/ljq/
    
  2. 第二种:webjar方式导进静态资源,就是在maven里面进行导入
    springboot-web自动装配的原理_第2张图片
    springboot-web自动装配的原理_第3张图片

    访问成功!

  3. 第三种:/ 路径下面的所有资源都被识别,但是识别资源也是有优先级的。 【这种就是最多人使用的】

    WebProperties里面找到Resources方法,里面就是静态资源配置,一共有4种类型静态资源的配置。

springboot-web自动装配的原理_第4张图片

优先级:classpath:/META-INF/resources/" 》 “classpath:/resources/” 》“classpath:/static/” 》 "classpath:/public/

classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/

【看源码找到的,每一个版本都会不一样,所以就会有很多不一样的配置类,但是原理都一样】

public static class Resources {
        private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{
            "classpath:/META-INF/resources/", 
            "classpath:/resources/", 
            "classpath:/static/", 
            "classpath:/public/"};
        private String[] staticLocations;
        private boolean addMappings;
        private boolean customized;
        private final WebProperties.Resources.Chain chain;
        private final WebProperties.Resources.Cache cache;

优先级:

springboot-web自动装配的原理_第5张图片

小拓展:

首页:

静态资源文件夹后,继续向下看源码!可以看到一个欢迎页的映射==WelcomePageHandlerMapping==,就是首页!

springboot-web自动装配的原理_第6张图片

欢迎页,静态资源文件夹下的所有 index.html 页面;被 /** 映射。

比如访问 http://localhost:8080/ ,就会找静态资源文件夹下的 index.html

新建一个 index.html ,然后访问测试 http://localhost:8080/

springboot-web自动装配的原理_第7张图片

图标:

要修改项目的图标就要在资源里面配置一个照片,并且命名为==favicon.ico== 【新版的Spring Boot直接添加这个文件就okl】

springboot-web自动装配的原理_第8张图片

你可能感兴趣的:(#,SpringBoot,java,spring,boot,restful)