自定义application.yml配置项方式

 更新时间:2024年07月10日 08:49:35   作者:平平常常一般牛  
这篇文章主要介绍了自定义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());
    }
}

启动一下,可以看到配置自动加载出来。

并输出 出来了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java中判断json key是否存在的几种方法

    java中判断json key是否存在的几种方法

    在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09
  • Spring Boot 项目与JDK、Mybatis版本兼容对应关系表及问题记录

    Spring Boot 项目与JDK、Mybatis版本兼容对应关系表及问题记录

    本文总结SpringBoot与JDK、MyBatis、SpringCloud及SpringCloudAlibaba的版本兼容性,提供对应关系表和注意事项,建议使用SpringBoot的依赖管理,匹配官方推荐版本,避免冲突,确保稳定性,感兴趣的朋友跟随小编一起看看吧
    2025-07-07
  • jdk17+springboot使用webservice的踩坑实战记录

    jdk17+springboot使用webservice的踩坑实战记录

    这篇文章主要给大家介绍了关于jdk17+springboot使用webservice踩坑的相关资料,网上很多教程是基于jdk8的,所以很多在17上面跑不起来,折腾两天,直接给答案,需要的朋友可以参考下
    2024-01-01
  • Java实现SM3加密和验证的示例代码

    Java实现SM3加密和验证的示例代码

    在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开,本文给大家详细介绍了使用Java实现SM3加密和验证,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12
  • Java线程安全中的单例模式

    Java线程安全中的单例模式

    这篇文章主要介绍了Java线程安全中的单例模式,需要的朋友可以参考下
    2015-02-02
  • 详解Java如何实现数值校验的算法

    详解Java如何实现数值校验的算法

    给定一个字符串如何判断它是否为数值类型?本文将带着大家学习一下如何利用Java实现这个判断算法,感兴趣的小伙伴可以学习一下
    2022-04-04
  • MyBatis一对一映射初识教程

    MyBatis一对一映射初识教程

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。在我们生活中一对一的例子很多见,下面通过本文给大家带来了mybatis一对一映射初识教程,感兴趣的朋友一起看下吧
    2016-08-08
  • SpringBoot解析yml全流程详解

    SpringBoot解析yml全流程详解

    本文主要介绍了SpringBoot解析yml全流程详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • SpringCloud微服务应用config配置中心详解

    SpringCloud微服务应用config配置中心详解

    这篇文章主要介绍了SpringCloud微服务应用-config配置中心,包括相关知识介绍、搭建、动态刷新、测试,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • springMVC的RequestMapping请求不到路径的解决

    springMVC的RequestMapping请求不到路径的解决

    这篇文章主要介绍了springMVC的RequestMapping请求不到路径的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08

最新评论