SpringBoot Web开发
项目里面都是jar
没有webapp的地方!那我们怎么去进行web开发。
SpringBoot最大的特点就是:自动装配
SpringBoot到底帮我们配置了什么,能不能进行修改?能修改哪些东西?能不能扩展?
- xxxxAutoConfiguration… **向容器中自动配置组件 ** 【这就是自动装配】
- xxxxProperties: 自动配置类,装配配置文件中自定义的一些内容! 【这一步就是修改】
要解决的问题
- 导入静态资源
- 首页
- 原本的项目就是写jsp来展示页面的,现在没有了,就需要学习==模板引擎Thymeleaf==
- 学习装配和扩展SpringMVC
- 增删改查
- 拦截器
- 国际化!
静态资源
在springboot,可以使用下面的方式处理静态资源
在WebMvcAutoConfiguration里面就是静态资源的配置
在那些包里面找到相对应的包,包里面有相对应的方法,再找到添加资源的方法addResourceHandlers
-
第一种方式:就是自定义的方式,在yaml配置文件中定义,后面的2 3就失效了
自定义静态资源路径
我们也可以自己通过配置文件来指定一下,哪些文件夹是需要我们放静态资源文件的,在application.yaml中配置:
spring.resources.static-locations=classpath:/jsp/,classpath:/ljq/
-
第二种:webjar方式导进静态资源,就是在maven里面进行导入
访问成功!
-
第三种:/ 路径下面的所有资源都被识别,但是识别资源也是有优先级的。 【这种就是最多人使用的】
在WebProperties里面找到Resources方法,里面就是静态资源配置,一共有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;
优先级:
小拓展:
首页:
静态资源文件夹后,继续向下看源码!可以看到一个欢迎页的映射==WelcomePageHandlerMapping==,就是首页!
欢迎页,静态资源文件夹下的所有 index.html 页面;被 /** 映射。
比如访问 http://localhost:8080/ ,就会找静态资源文件夹下的 index.html
新建一个 index.html ,然后访问测试 http://localhost:8080/
图标:
要修改项目的图标就要在资源里面配置一个照片,并且命名为==favicon.ico== 【新版的Spring Boot直接添加这个文件就okl】