自动装配
xxxAutoConfiguraion … 向容器中自动配置组件
xxxProperties: 自动配置类,装配配置文件中自定义的一些内容
要解决的问题
1.导入静态资源
2.首页
3.jsp,模板引擎 Thymeleaf
4.装配扩展SpringMVC
5.增删改查
6.拦截器
7.国际化
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
if (!this.resourceProperties.isAddMappings()) {
logger.debug("Default resource handling disabled");
return;
}
ServletContext servletContext = getServletContext();
addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
registration.addResourceLocations(this.resourceProperties.getStaticLocations());
if (servletContext != null) {
registration.addResourceLocations(new ServletContextResource(servletContext, SERVLET_LOCATION));
}
});
}
private void addResourceHandler(ResourceHandlerRegistry registry, String pattern, String... locations) {
addResourceHandler(registry, pattern, (registration) -> registration.addResourceLocations(locations));
}
private void addResourceHandler(ResourceHandlerRegistry registry, String pattern,
Consumer<ResourceHandlerRegistration> customizer) {
if (registry.hasMappingForPattern(pattern)) {
return;
}
ResourceHandlerRegistration registration = registry.addResourceHandler(pattern);
customizer.accept(registration);
registration.setCachePeriod(getSeconds(this.resourceProperties.getCache().getPeriod()));
registration.setCacheControl(this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl());
customizeResourceHandlerRegistration(registration);
}
总结:
1.在Springboot,我们可以使用以下方式处理静态资源
webjars localhost:8080/webjars/
public,static,/**,resources localhost:8080/
2.优先级: resources>static(默认)>public
模板引擎:
只要需要使用thymeleaf,只需要导入对应的依赖就可以了!我们将html放在我们的templates目录即可
public static final String DEFAULT_PREFIX = "classpath:/templates/";
public static final String DEFAULT_SUFFIX = ".html";
在spring boot中,有非常多的xxx Configuration 会帮助我们进行扩展配置