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

    科技2025-04-01  18

    一、SpringBoot简化开发

    1.1 约定大于配置

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

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

    1.2 场景启动器

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

    1.3 XxxxAutoConfigure

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

    1.4 XxxxProperties

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

    1.5 了解SpringBoot的注入方式

    1.5.1 Spring的IoC注入两种方式

    xml <bean>``<property> 注解:@Component@Service@Repository@Controller@Value

    1.5.2 SpringBoot的Ioc注入的三种方式

    xml(不推荐使用)

    <bean>``<property>

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

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

    来替代注解和xml配置文件

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

    1.5.2 使用

    都可以直接自动注入

    1.6 lombok

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

    1.6.1 安装

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

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

    配置pom,要先装好插件

    1.6.2 使用

    get/set/toString就都有了

    比较细的注解

    只写get和只写set

    二、SpringBoot配置文件

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

    2.1 properties

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

    2.2 yml

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

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

    2.3 yml和properties一起使用

    这边配端口号

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

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

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

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

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

    2.4.0 @ConfigurationProperties

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

    2.4.1 配置文件输入提示

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

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

    刷新一下项目就有提示了

    2.4.2 配置文件写法

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

    yml写法

    测试类

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

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

    properties写法

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

    结果

    2.4.3 @Value写法(Spring的用法)

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

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

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

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

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

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

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

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

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

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

    2.4.5.2 @ImportResource

    source来源;resource资源

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

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

    2.5 配置类

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

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

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

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

    Processed: 0.011, SQL: 8