SpringBoot3-自动配置、配置文件和配置类

一、SpringBoot简化开发

1.1 约定大于配置

就不想放在主类包下面,也可以,在主类上面打个包扫描注解

(没有必要给自己找麻烦)

SpringBoot3-自动配置、配置文件和配置类_第1张图片

1.2 场景启动器

一个特定开发环境中的所有jar包的整合

1.3 XxxxAutoConfigure

每个场景启动器中会有自动创建当前场景中需要使用的常用类

1.4 XxxxProperties

常用的类的对象创建以后,常用属性都有默认值,开发中不想使用这些固定的值,可以在SpringBoot的配置文件中修改,修改的属性值都是通过XxxxProperties类的setXxx()方法修改的

SpringBoot3-自动配置、配置文件和配置类_第2张图片

1.5 了解SpringBoot的注入方式

1.5.1 Spring的IoC注入两种方式

  • xml
    • ``
  • 注解:@Component@Service@Repository@Controller@Value

1.5.2 SpringBoot的Ioc注入的三种方式

  • xml(不推荐使用)

    • ``
  • 注解(推荐使用) :自己的类就打注解@Component@Service@Repository@Controller@Value

  • 配置类(推荐使用):系统的类就用配置类

    来替代注解和xml配置文件

类似这种做法,SpringBoot是怎么做的呢(具体见下文配置文件的原理及写法和配置类写法)

1.5.2 使用

都可以直接自动注入

SpringBoot3-自动配置、配置文件和配置类_第3张图片

1.6 lombok

插件,可以自动生成无参构造,全参构造,get/set/toString

1.6.1 安装

SpringBoot3-自动配置、配置文件和配置类_第4张图片

-javaagent:D:\develope\sts-3.9.7.RELEASE\lombok.jar

自己加这么一句话,一样的

SpringBoot3-自动配置、配置文件和配置类_第5张图片

配置pom,要先装好插件

SpringBoot3-自动配置、配置文件和配置类_第6张图片

1.6.2 使用

SpringBoot3-自动配置、配置文件和配置类_第7张图片

SpringBoot3-自动配置、配置文件和配置类_第8张图片

get/set/toString就都有了

SpringBoot3-自动配置、配置文件和配置类_第9张图片

比较细的注解

只写get和只写set

SpringBoot3-自动配置、配置文件和配置类_第10张图片 SpringBoot3-自动配置、配置文件和配置类_第11张图片

二、SpringBoot配置文件

SpringBoot的默认配置文件是.properties和.yml,不推荐视同xml(可以用)

2.1 properties

server类下面有属性port和servlet,port是个String类型的值;而servlet是个对象,有属性context-path,之间的层级关系用.来表示

image-20201008014635087

2.2 yml

层级关系用换行和对其来表示,格式要求:

  • 同一级别上下必须对齐
  • :和后面值之间必须加空格

SpringBoot3-自动配置、配置文件和配置类_第12张图片

2.3 yml和properties一起使用

这边配端口号

image-20201008015249848

这边配路径,想层叠样式表一样使用

SpringBoot3-自动配置、配置文件和配置类_第13张图片

有冲突,properties优先级更高,则properties的配置生效

image-20201008015402963

SpringBoot3-自动配置、配置文件和配置类_第14张图片

2.4 配置文件运作原理及写法

想在配置文件里给自定义类注入值,要打这个注解,系统是怎么识别到你的配置文件是给这个类注入呢?

系统底层的配置类已经写好了,你在application.properties配置文件写,就会注入到配置类里面

2.4.0 @ConfigurationProperties

就是这个prefix前缀,通过这个前缀找到这个类,再通过配置文件里的属性,如果能与这个类对得上,就注入到这个类中

SpringBoot3-自动配置、配置文件和配置类_第15张图片

2.4.1 配置文件输入提示

此时你在配置文件打student是没有提示的

SpringBoot3-自动配置、配置文件和配置类_第16张图片

黄色的已经提示你了,加一个配置处理的依赖

SpringBoot3-自动配置、配置文件和配置类_第17张图片

SpringBoot3-自动配置、配置文件和配置类_第18张图片

刷新一下项目就有提示了

SpringBoot3-自动配置、配置文件和配置类_第19张图片

2.4.2 配置文件写法

写好两个类,@Component是创建对象的,需要创建对象就要打这个注解

SpringBoot3-自动配置、配置文件和配置类_第20张图片 SpringBoot3-自动配置、配置文件和配置类_第21张图片
  1. yml写法
SpringBoot3-自动配置、配置文件和配置类_第22张图片

测试类

SpringBoot3-自动配置、配置文件和配置类_第23张图片

这样属性值就都注入进去了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rLnbwKFj-1602133456203)(C:/Users/CEO/AppData/Roaming/Typora/typora-user-images/image-20201008100629720.png)]

  1. properties写法
SpringBoot3-自动配置、配置文件和配置类_第24张图片

对比yml,properties的优先级更高,没有冲突就合并注入

SpringBoot3-自动配置、配置文件和配置类_第25张图片

结果

SpringBoot3-自动配置、配置文件和配置类_第26张图片

2.4.3 @Value写法(Spring的用法)

之前在Spring中用的就是@Value,在SpringBoot中也可以用,因为底层就是Spring,只支持字符串和基本类型的注入

缺点:域属性,集合都注入不进来

SpringBoot3-自动配置、配置文件和配置类_第27张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C3V9xOKh-1602133456204)(C:/Users/CEO/AppData/Roaming/Typora/typora-user-images/image-20201008111128006.png)]

SpringBoot3-自动配置、配置文件和配置类_第28张图片

2.4.4 自定义配置文件写法(一般不这么用)@PropertySource

不想放在系统指定的配置文件下面,或者配置文件太多,想分开放

自定义student配置文件,但是系统读不到

SpringBoot3-自动配置、配置文件和配置类_第29张图片

属性值配置不是配置在默认配置文件下,必须指定加载路径

这时要在你要注入的配置类上面加一个类似于placeholder的注解@PropertySource,让系统找到配置文件的位置

SpringBoot3-自动配置、配置文件和配置类_第30张图片

2.4.5 Spring的xml写法(也能在这用,不推荐)

2.4.5.1 像以前一样写,不推荐在这里用

SpringBoot3-自动配置、配置文件和配置类_第31张图片

SpringBoot3-自动配置、配置文件和配置类_第32张图片 SpringBoot3-自动配置、配置文件和配置类_第33张图片 SpringBoot3-自动配置、配置文件和配置类_第34张图片

2.4.5.2 @ImportResource

source来源;resource资源

注意系统自动注入的ac是读不到除系统指定的其他配置文件的

SpringBoot3-自动配置、配置文件和配置类_第35张图片

SpringBoot3-自动配置、配置文件和配置类_第36张图片

SpringBoot3-自动配置、配置文件和配置类_第37张图片

这时我们要在主类上面打一个注解,@ImportResource,指定加载配置文件

SpringBoot3-自动配置、配置文件和配置类_第38张图片 SpringBoot3-自动配置、配置文件和配置类_第39张图片

2.5 配置类

使用一个类来代替xml配置文件和注解

SpringBoot3-自动配置、配置文件和配置类_第40张图片 SpringBoot3-自动配置、配置文件和配置类_第41张图片

注意:bean的id名字就是方法名,不像之前大驼峰变小驼峰

SpringBoot3-自动配置、配置文件和配置类_第42张图片

不想使用方法名,就用@Bean(“名字”)

SpringBoot3-自动配置、配置文件和配置类_第43张图片 SpringBoot3-自动配置、配置文件和配置类_第44张图片

在SpringBoot中一般不用xml配置了,用注解加配置类;自己的类就打注解,系统的类就用配置类

你可能感兴趣的:(后端框架,spring,boot)