• SpringBoot中pom.xml配置详解



    579a429daf314744b995f37351b46548

    前言

    在Spring Boot开发中,配置文件是非常重要的一部分,而yml文件作为一种常用的配置文件格式,被广泛应用于Spring Boot项目中。Spring Boot提供了多种方式来读取yml文件中的属性值,开发者可以根据具体的需求和场景选择合适的方式。本文将介绍Spring Boot读取yml文件的主要方式,帮助开发者更好地理解和应用这些方式。

    主要方式

    image-20231109115832225

    1.@Value注解

    ​ 通过在属性上使用@Value注解,直接将yml文件中的属性值注入到对应的属性中。这种方式适用于需要将yml文件中的属性值注入到单个属性中的情况。

    示例

    application.yml:

    name: Zhangsan
    
    • 1

    Bean:

    public class MyBean {
        @Value("${name}")
        private String name;
    } 
    
    • 1
    • 2
    • 3
    • 4
    2.Environment对象

    我们可以通过注入Environment对象来读取yml值,通过@Autowired注解将Environment对象注入到类中,然后使用getProperty方法获取yml文件中的属性值。这种方式适用于需要在代码中动态获取yml文件中的属性值的情况。

    示例
    @Autowired
    private Environment environment;
    
    public void doSomething() {
        String name = environment.getProperty("name");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    3.@ConfigurationProperties注解

    我们可以使用@ConfigurationProperties注解将yml中的值映射到bean的属性上,通过在配置类上使用@ConfigurationProperties注解,将yml文件中的属性值映射到配置类的属性上。这种方式适用于需要将yml文件中的多个属性值映射到一个配置类中的情况。

    @ConfigurationProperties注解是Spring Boot提供的一个注解,用于读取配置文件中的属性值。它可以用于读取yaml文件、properties文件以及xml文件中的属性值。

    要使用@ConfigurationProperties注解读取xml文件中的属性值,需要进行以下几个步骤:

    1. 创建一个@ConfigurationProperties注解的类,用于存储属性值。
    2. 在类上使用@Component注解,将其作为一个组件注册到Spring容器中。
    3. 在类上使用@PropertySource注解,指定xml文件的路径和名称。
    4. 在属性上使用@Value注解,指定属性的名称。
    示例

    application.yml:

    my: 
        name: Zhangsan
        age: 18
    
    • 1
    • 2
    • 3

    Bean:

    @Component 
    @ConfigurationProperties(prefix = "my")
    public class MyProps {
        private String name;
        private int age;
        
        // getter and setter
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    @ConfigurationProperties注解可以用于读取xml文件中的属性值。通过在类上使用@Component注解将其作为一个组件注册到Spring容器中,并使用@PropertySource注解指定xml文件的路径和名称,再使用@ConfigurationProperties注解指定属性的前缀和@Value注解指定属性的名称,我们可以方便地读取xml文件中的属性值,并将其注入到对应的属性中。

    4.YmlPropertySourceFactory

    我们可以使用YmlPropertySourceFactory来加载yml文件,然后像普通Properties一样读取值.

    YmlPropertySourceFactory是Spring Boot提供的一个工厂类,用于读取xml文件中的属性值。

    使用YmlPropertySourceFactory需要进行以下几个步骤:

    1. 创建一个YmlPropertySourceFactory类的实例。

    2. 调用YmlPropertySourceFactory的createPropertySource方法,传入xml文件的路径和名称,创建一个PropertySource对象。

    3. 将PropertySource对象添加到Environment中,以便在代码中使用。

    示例
    @Configuration
    public class XmlConfig {
    
    @Autowired
    private Environment environment;
    
    @Bean
    public PropertySource xmlPropertySource() {
        YmlPropertySourceFactory factory = new YmlPropertySourceFactory();
        PropertySource propertySource = factory.createPropertySource("classpath:config.xml");
        environment.getPropertySources().addFirst(propertySource);
        return propertySource;
    }
    
    @Bean
    public MyBean myBean() {
        MyBean myBean = new MyBean();
        myBean.setConfigValue(environment.getProperty("config.value"));
        return myBean;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    5.@YamlComponent注解

    YamlComponent是Spring Boot提供的一个注解,用于读取yaml文件中的属性值。它并不适用于读取xml文件中的属性值。如果需要读取xml文件中的属性值,可以使用其他方式,比如使用Spring的PropertyPlaceholderConfigurer或者自定义的PropertySourceFactory。

    示例

    application.yml:

    my:
      name: Zhangsan 
    ---
    my: 
      name: Lisi
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Beans:

    @Component("first") 
    @YamlComponent(value = "my.first")
    public class FirstProps {
        private String name;
    }
    
    @Component("second")  
    @YamlComponent(value = "my.second")
    public class SecondProps {
        private String name; 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    这就是Spring Boot读取yml文件的主要5种方式,可以根据需要选择使用。yml作为Spring Boot默认的配置文件格式,理解如何操纵yml文件将有助于我们实现系统配置的灵活性。

    YamlComponent注解适用于读取yaml文件中的属性值,而不适用于读取xml文件中的属性值。如果需要读取xml文件中的属性值,可以使用其他方式,比如使用Spring的PropertyPlaceholderConfigurer或者自定义的PropertySourceFactory。


    总结

    Spring Boot提供了多种方式来读取yml文件中的属性值,开发者可以根据具体的需求和场景选择合适的方式。使用@ConfigurationProperties注解可以将yml文件中的属性值映射到配置类的属性上,使用@Value注解可以直接将yml文件中的属性值注入到单个属性中,使用Environment对象可以在代码中动态获取yml文件中的属性值。通过灵活运用这些方式,开发者可以更好地管理和应用yml文件中的配置信息,提高开发效率和代码可读性。


    写在最后

    感谢您的支持和鼓励! 😊🙏

    如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,系统架构, 分布式, java, GO, python, 游戏相关 等系列文章,一系列干货随时送达!

    csdn-end

  • 相关阅读:
    关于binwalk->sasquatch插件安装错误的缓解方案
    669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树
    机器人中的数值优化|【七】线性搜索牛顿共轭梯度法、可信域牛顿共轭梯度法
    机器视觉系统选型-镜头选型
    js监听页面滚动
    20231024后端研发面经整理
    Spring Cloud alibaba Ribbon 负载调用说明(4)
    使用jmeter进行接口测试
    AntDesign技术指南:构建优雅的前端界面
    使用 Go 实现 HelloWorld 程序,并分析其结构
  • 原文地址:https://blog.csdn.net/jinxinxin1314/article/details/133129287