上一章
前言
后面又有一些注解的讲解,然后讲起源码来,springboot底层源码中条件装配很多,所以这个注解也很能用,但是稍微介绍一下就带过算了,因为看老师讲源码,着实很让我伤脑筋,车子我还没学会怎么骑呢,就让我看车子怎么造...好难。lombok需要插件结合依赖一起才能使用,不过最好还是别用,因为不难,但是这插件改变了原生的IDEA代码,有lombok的项目必须在有lombok插件和配置的IDEA上才能运行。 我为了省事就用了。一、两个注解
1. @Conditional & @ConditionalOnBean & @ConditionalOnMissingBean
放在@Bean上或者类上,用于在满足某个条件时才装配某个Bean
2. @ImportResource
在用比较老的XML文件配置Bean时,可以通过这个注解来导入XML文件,达到装配Bean的目的
二、lombok安装
1. 下载lombok插件
2. 在pom.xml文件中添加lombok的依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
3. IDEA中找到 File -> Invalidate Caches 清除缓存并重启IDEA
4. 使用lombok
Animal类上添加注解,代替掉大量的getter setter 和 toString方法
@Data //包含了 setter getter and toString 方法
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
public class Animal {
String type;
}
注意:如果要其他的构造函数,还是得自己写。
三、yaml文件语法与properties文件语法比较
1. yml与properties配置示例分析
配置文件配置的无非是一些键值对,而yml语法采用
key: value
(key冒号空格value)的基本写法,加上类似于python的严格缩进来表示一些结构
例如:要表示server下的port和address属性。
application.properties文件
server.port=8080
server.address=127.0.0.1
application.yml文件(缩进表示)
server:
port: 8080
address: 127.0.0.1
- 总体来说层级较多并少量的配置,用properties文件更方便(此时用yml会浪费很多行,看起来很坏)
yml更适合于大量的对Bean对象默认值的配置,结构更清晰,而且语法更简单,省略了许多重复前缀。 - IDEA已经为缩进做了充足的工作,所以在体验上SpringBoot更推荐于用yml来配置Bean的注入。需要注意的是,默认情况下properties配置文件的优先级要比yml后缀的配置文件优先级高。
2. 常见类型的yml配置示例
3. YML文件写Bean的注入数据时,显示属性提示
1. 说完了YML多用于Bean数据的注入,那么为了让我们要注入的类在YML文件中有提示,需要加入一个依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2. 在打包插件中排除掉该依赖,因为这个提示插件在开发中用的,发布后运行起来没什么用。
<configuration>
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<arrifactId>spring-boot-configuration-processor</arrifactId>
</exclude>
</excludes>
</configuration>
3. 然后刷新Maven让依赖生效
4. 让YML正确弹出提示的方式
1. 先写Bean注入时引用哪个前缀 (先写@ConfigurationProperties
注解)
2. 重新运行项目
3. 最后才在YML中写配置
PS:学习编程的最好方法,就是照着教程敲一遍 多思考,多用行动验证想法。照着视频边敲边看,有时候想到一些视频没讲的细节,便随手都可以验证。
总结
1. 今天学习了lombok插件及其语法的使用
2. 了解了一些yml的语法和其主要是用于Bean的属性数据的注入
3. 然后为了简化开发,又加入了一个依赖,让yml配置Bean类的注入数据时拥有补全
用了别人的图,搬运着讲了别人的内容,总不能白嫖吧,我看的B站视频链接:2021版最新SpringBoot2_请直接从P112开始学习新版视频 (雷神讲得还挺好的的,除了源码过于烧脑,这不怪他)
顺嘴说一句,我看到了P132,写在这里也可以监督自己,每天都要学一点点。