springboot优点:
- 创建独立spring应用
- 内嵌web服务器
- 自动starter依赖,简化构建配置
- 自动配置spring以及第三方功能
- 提供生产级别的监控,健康检查及外部化配置
- 无代码生成,无需编写XML
springboot缺点:
- 版本迭代快,需要时刻关注版本
- 封装太深,内部原理复杂,不容易精通
自动配置:
- 自动配置好springMVC
- 自动配置好Web常见功能
- 默认的包结构
- 各种配置拥有默认值
- 按需加载所有自动配置项
配置绑定:
-
@ConfigurationProperties
-
@EnableConfigurationProperties +
@ConfigurationProperties
-
@Component + @ConfigurationProperties
@SpringBootConfiguration:
@Configuration 代表当前是一个配置类
@ComponentScan
指定扫描包
@EnableAutoConfiguration
@AutoConfigurationPackage 自动配置包 //将一个指定的包下所有组件导入进来 【@Import //给容器中导入组件】 @Import({AutoConfigurationImportSelector.class})
springboot启动加载所有,最终按照条件配置规则,按需装配
实践
- 引入场景依赖
- 查看自动配置了那些
- 是否需要修改【参照文档,自己分析】
Lombok
引入依赖
安装插件lombok
@Data // get and set @ToString // tostring @AllArgsConstructor // 全参构造器 @NoArgsConstructor // 无参构造器 public class User { private String name; private String sex; private Integer age; }
@Slf4j //日志记录 // 热更新 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
yaml(yml)注意事项
key:value 冒号之后有空格
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
'#'表示注释
‘’与"表示字符串内容 单引号会转义,双引号不转义
前缀命名.xxx
@Component // 注入容器中 @ConfigurationProperties(prefix = "前缀命名")