自动装配原理

1.SpringBoot启动会加载大量的配置类
2.我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类中
3.我们再来看这个自动配置类中到底配置类哪些组件(只要我们要用的组件存在其中,我们就不需要再手动配置)
4.给容器中自动配置类添加组件的时候会从properties类获取某些属性吗我们只需要在配置文件中指定这些属性的值即可
xxxxAutoConfigurartion:自动配置类,给容器中添加组件
xxxxProperties:封装配置文件中相关属性

可以通过degug来查看哪些自动配置类生效,哪些没有
(在properties文件中写debug=true 或者yaml写debug: true)

SpringBoot Web开发

自动装配
Springboot到底帮我们配置了什么?我们能不能进行修改?能修改哪些东西?能不能拓展?

  • xxxxAutoConfiguration 向容器中自动配置 组件
  • xxxProperties: 自动配置类,装配配置文件中自定义的一些内容

要解决的问题:

  • 导入静态资源。
  • 首页定制
  • jsp,模版引擎Thymeleaf
  • 装配拓展SpringMVC
  • 增删改查
  • 拦截器
  • 国际化(中英文切换)

1.在springboot中我们可以使用以下方式处理静态资源

  • webjars localhost:8080/webjars/
  • public,static,/**,resources localhost:8080/
    2.优先级 resources>static(默认)>public

# 首页,图标如何定制
将index.html放入镜态资源包内
图标2.2中直接放在static中即可(没测试)

package com.quanwu.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//在templates目录下的所有页面只能通过controller来跳转!
//这个需要模版引擎的支持
@Controller
public class IndexController {

    @RequestMapping("/index")
    public String index(){
        return "index";
    }
}

这个是失败的,因为没有模板引擎的支持

模版引擎

结论:只需要使用thymeleaf,只需要导入相应的maven依赖即可,在IDEA创建的时候导入即可。将html放在templates目录下即可(源码配置)

以下贴代码

package com.quanwu.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {

    @RequestMapping("/test")
    public String test(Model model){
        model.addAttribute("msg","hello,springboot");
        return "test";
    }
}

关于Model:model和session都是存放信息的地方,不同的地方就是他们的生命周期不同,model是request级别的。(这个暂时留存,我也不太清楚)

    <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<body>
<!--所有的html元素都可以没thymeleaf替换接管: th: 元素名-->
<div th:text="${msg}"></div>
</body>
</html>