springboot基础
依赖管理
几乎声明了开发中所运用到的场景,我们只需要查询需要导入的jar包,不写版本号
自动配置
springbootApplication(scanBasePackages="xx.xx")
@Conditional
条件装配,满足条件才创建组件
@ConfigurationProperties(prefix="mycar")
配置绑定
@EnableConfigurationProperties(Car.class)
自动配置原理
springboot的核心配置功能
@SpringbootConfiguration:代表当前是个配置类
@ComponentScan:指定扫描哪些包下的配置
@EnableAutoConfiguration:@Import({AutoConfigurationImportSelector.class})
从META-INF/spring.factories位置来加载一个文件。
默认扫描我们当前系统里面所有META-INF/spring.factories位置的文件
spring-boot-autoconfigure-2.3.4.RELEASE.jar包里面也有META-INF/spring.factories
按需开启自动配置
们127个场景的所有自动配置启动的时候默认全部加载。xxxxAutoConfiguration
按照条件装配规则(@Conditional),最终会按需配置。
修改默认配置
@Bean
@ConditionalOnBean(MultipartResolver.class) //容器中有这个类型组件
@ConditionalOnMissingBean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME) //容器中没有这个名字 multipartResolver 的组件
public MultipartResolver multipartResolver(MultipartResolver resolver) {
//给@Bean标注的方法传入了对象参数,这个参数的值就会从容器中找。
//SpringMVC multipartResolver。防止有些用户配置的文件上传解析器不符合规范
// Detect if the user has created a MultipartResolver but named it incorrectly
return resolver;
}
给容器中加入了文件上传解析器;
配置文件
key: value
kv之间有空格、大小写敏感、缩进不能使用tab,只能使用空格、缩进的空格数不重要,只需要相同层级的元素对齐就行
web开发
静态资源放在/static、/public、/resources、/META-INF/resources
访问原理:先去找Controller能不能处理请求,如果不能就交给静态资源管理器处理、如果也处理不到则响应404
请求参数
使用Rest风格支持对接口的访问
核心Filter:HinddenHttpMethodFilter
用法:表单methoud=post,隐藏参数_method=put
springboot中配置开启功能,默认不开启
自定义隐藏参数_method=put
重新向spring中注入HiddenHttpMethodFilter
然后new出HiddenHttpMethodFilter对象,set你想定义的参数