自动配置
Servlet
Springmvc
自动配好web的常见场景
默认包的结构
主程序及以下都会被扫描(可修改componetscan指定扫描路径或springbootapplication(scanBasePackages=””))
默认值 如8080端口号
默认配置最终都是映射到multipartproperties
配置文件的值会绑定每个类上,类会在容器中创建对象
按需加载所有的自动配置
非常多的starter
引入了那些场景,这个场景的自动配置会开启
Springboot所有的自动配置功能都在springbatchautoconfiguration
容器功能
Configuration配置类
Bean给容器添加组件,方法名为id 返回类型为组件类型,返回值是组件在容器的实例
Beans.xml替代
Component
只有在容器中,才会拥有springboot的功能可以绑定
Enableconfigurationproperties(car.class)
开启car的配置绑定功能
把这个car这个组件自动注册到容器中
Springboot自动配置原理
引导自动加载自动配置类
Springbootconfiguration @configuration 代表当前是一个配置类
@componentscan 指定扫描,spring注解
Enableautoconfiguration @autoconfigurationpackage 给容器中导入一个组件
Public @interface autoconfiguration package()利用register给容器导入一系列组件
127所用自动配置启动时,默认全部加载,但按需要配置,
定制化修改默认配置,
Springboot先加载所有的自动配置类
每个自动,配置类按照条件进行生效,默认都会绑定配置文件值 xxxxxproperties里面,xxxxxproperties和配置文件进行绑定
生效的配置类就会给容器中装配很多组件
只要容器中有这些组件,相当于这些功能就有了
以用户自己的配置为优先,定制化配置,@bean覆盖默认组件,修改获取的配置文件(包含组件的)xxxxautoconfiguration ->组件 –> xxxxxproperties里面拿值 –> application properties
实践步骤
引入依赖
检查是否需要修改配置项或自定义加入或替换组件,参考文档修改springboot官方(配置中加入debug=true (negative不生效、positive生效))@bean @component
@XXXXXcustomizer
开发技巧
1 lombok 引入依赖,安装插件(lombok)@data注解(getting and setting) @allargsconstruction @noargsconstruction @Tostring(清晰)@Equalsandhashcode 哈希
@slf4j 日志记录器
Ctrl F9 重新启动,重新编译
Springinitializr(springboot)
Springboot2核心技术-核心功能
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-configurationprocessor</artifactId>
- </exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
提示防止一起打包
配置文件
1properties
2 yaml: k: v 大小写 kv之间有空格 相同层级对其 #表示注释,“”与“”表示字符串内容,会被转义或不转义
数据类型
web 开发
springmvc自动配置概览:内容协商视图解析器和beanname视图解析器,静态资源(webjars),自动注册converter,静态index.html页支持 定义favicon
简单功能分析
数据响应与内容协商
数据解析与模板引擎
拦截器
跨域
异常处理
原生servlet组件
嵌入式web容器
定制化原理
数据访问
单元测试
指标监控
原理解析