手撸,自定义application.yml配置项

前言

我们现在在springboot中,极其简单的配置就可以完成以前很复杂的配置,application.yml配置很不错,闲着没事噶,就研究了一下yml如何通过在yml文件中配置来自动加载一些配置,还有就是好奇他是怎么实现一点击就跳转到配置类中的。

教程

1、加入配置依赖,及maven插件
		<!--配置注释处理以来-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>2.6.4</version>
        </dependency>

 		<!--maven 插件-->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
</plugins>
2、元注解 分析

我们写一个外部的配置类,我们还要在配置类上边加入两个元注解 @Component :组件注解,将该配置文件放到ioc容器中,@ConfigurationProperties 外部配置文件注解,表明这是一个外部的配置文件。

特别注意的是,我们配置的文件一定要放入到ioc容器中,否则的话@ConfigurationProperties就会发现不了这个文件,从而报错。

如下图,我们点进去这个注解,看他是怎么定义的。可以看到,下面的两个属性,并且都取了一个别名,也就是说,不管我们在指定value,还是 profix 属性,我们可以看到,它们都是一个作用。都是有效的绑定对象的前缀。
在这里插入图片描述

3、配置文件

我们的这个配置文件就是说,当我们在yml中点击配置属性的时候跳转的类。下面是我写的一个实体类配置,setter和getter方法我就不在下面列举了。

@Component
@ConfigurationProperties(prefix = "user")
public class User {
    /**
     * Column: id
     * Type: INT
     */
    private Integer id;

    /**
     * Column: username
     * Type: VARCHAR(12)
     */
    private String username;

    /**
     * Column: phone
     * Type: BIGINT
     */
    private Long phone;

配置好了之后呢,已经要maven编译一遍,不然不知道。如下图
在这里插入图片描述

4、测试能不能用

如下图可以看到,我们输入user前缀的时候,就已经将我们的配置项提示出来了。说明我们的配置很成功。
在这里插入图片描述

5、怎么从配置里面取值,并加载呢?

这个也是很简单的,因为我们将我们的配置放到了ioc容器中了,要实现自动加载取值并实现某种逻辑,我们将这个配置注入到我们需要执行的方法或者类中,并将要需要自动执行的逻辑或者类放入到ioc中。

第一,我们在配置中加入值

在这里插入图片描述

第二、编写一个自动配置类

我这里就不做什么很复杂的逻辑了,就简单输出一下我取到的值,告诉其中的原理就行,要是有其他的逻辑就是按照这个原理来的。

@Configuration
public class CommonConfig {

    @Autowired
    User user;

    @Bean
    public void get(){
        System.out.println(user.getId());
    }
}

启动一下,可以看到配置自动加载出来。并输出出来了。
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平平常常一般牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值