iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >springboot如何获取yml里面的属性值
  • 208
分享到

springboot如何获取yml里面的属性值

2024-04-02 19:04:59 208人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录如何获取yml里面的属性值开发环境项目结构pom依赖SpringBoot启动类person.ymlperson.javaDog.javaspringbootDemoApplica

如何获取yml里面的属性值

开发环境

项目结构

pom依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="Http://Maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.springboot</groupId>
    <artifactId>springboot_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_demo</name>
    <description>Demo project for Spring Boot</description>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-WEB</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--导入配置文件处理器,配置文件绑定数据会有数据-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build> 
</project>

springboot启动类

package com.springboot.springboot_demo; 
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.io.ClassPathResource;
 
@SpringBootApplication
public class SpringbootDemoApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(SpringbootDemoApplication.class, args);
    }
    
    @Bean
    public static PropertySourcesPlaceholderConfigurer properties() {
        PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
        YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
        yaml.setResources(
                new ClassPathResource[] {
                        
                        new ClassPathResource("config/person.yml")
                });
        pspc.setProperties(yaml.getObject());
        return pspc;
    }
}

person.yml

person:
  lastName: zhangsan
  age: 18
  boss: false
  birth: 2017/12/12
  maps: {k1: v1,k2: v2}
  lists:
    - lisi
    - zhaoliu
  dog:
    name: 小狗
    age: 2

person.java

package com.springboot.springboot_demo.pojo; 
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; 
import java.util.Date;
import java.util.List;
import java.util.Map;
 

@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person { 
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog; 
}

Dog.java

package com.springboot.springboot_demo.pojo; 
import lombok.Data; 
@Data
public class Dog {
    private String name;
    private String age;
 
}

SpringbootDemoApplicationTests

package com.springboot.springboot_demo; 
import com.springboot.springboot_demo.pojo.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
 

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootDemoApplicationTests { 
    @Autowired
    private Person person;
    @Value("${person.lastName}")
    private String username;
    @Test
    public void contextLoads() {
        System.out.println(person);
    }
    @Test
    public void personCopy() {
        System.out.println(username);
    } 
}

控制台输出

Person(lastName=zhangsan, age=18, boss=false, birth=Tue Dec 12 00:00:00 CST 2017, maps={k1=v1, k2=v2}, lists=[lisi, zhaoliu], dog=Dog(name=小狗, age=2))

zhangsan

获取.yml中自定义参数

需求:根据不同环境获取到不同的参数,放在.yml中方便修改!

在开发环境中,回调的url地址

测试环境中,回调的url地址

在生产环境中,回调的url地址

我是通过2种方式来实现的

通过@Value获取

代码如下

package com.heque.service.pay;
import org.springframework.beans.factory.annotation.Value;
public abstract class ObtainNotifyUrl {
    @Value("${weixinAndAli.wechatNotifyUrl}")
    private String wechatNotifyUrl;
    @Value("${weixinAndAli.aliNotifyUrl}")
    private String aliNotifyUrl;
    public String getWechatNotifyUrl() {
        return wechatNotifyUrl;
    }
    public void setWechatNotifyUrl(String wechatNotifyUrl) {
        this.wechatNotifyUrl = wechatNotifyUrl;
    }
    public String getAliNotifyUrl() {
        return aliNotifyUrl;
    }
    public void setAliNotifyUrl(String aliNotifyUrl) {
        this.aliNotifyUrl = aliNotifyUrl;
    }
}
package com.heque.service.pay;
import org.springframework.stereotype.Component;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@Component
public class Test extends ObtainNotifyUrl{    
}

通过springframework自动包可以完成此功能,需要注意Test继承对象需要加入@component,把对象交给sprinGContainer去管理,我们需要的时候只需注入资源就好了。

@Autowired private Test test; test.getAliNotifyUrl();/test.getWechatNotifyUrl();

通过@ConfigurationProperties(prefix = "weixinAndAli")注解

代码如下

package com.heque.service.pay;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "weixinAndAli")
public class ConfigUtils {    
    private String wechatNotifyUrl;    
    private String aliNotifyUrl;    
    public String getWechatNotifyUrl() {
        return this.wechatNotifyUrl;
    }
    public void setWechatNotifyUrl(String wechatNotifyUrl) {
        this.wechatNotifyUrl = wechatNotifyUrl;
    }
    public String getAliNotifyUrl() {
        return aliNotifyUrl;
    }
    public void setAliNotifyUrl(String aliNotifyUrl) {
        this.aliNotifyUrl = aliNotifyUrl;
    }
}

调用和方法一一样的

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: springboot如何获取yml里面的属性值

本文链接: https://www.lsjlt.com/news/139324.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot如何获取yml里面的属性值
    目录如何获取yml里面的属性值开发环境项目结构pom依赖springboot启动类person.ymlperson.javaDog.javaSpringbootDemoApplica...
    99+
    2022-11-13
  • Springboot 如何指定获取出 yml文件里面的配置值
    之前写过一篇获取properties文件里面的值: Springboot 指定获取自己写的配置properties文件的值 www.jb51.net/article/217899.h...
    99+
    2022-11-12
  • springboot如何获取properties属性值
    这篇文章主要介绍springboot如何获取properties属性值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!获取properties属性值方式总结spring boot 在多环境情况下我们需要根据不同的获取不...
    99+
    2023-06-29
  • SpringBoot 属性配置中获取值的方式
    目录SpringBoot 属性配置中获取值首先,定义一个实体类去写属性测试和生产区分SpringBoot 获取值和配置文件1、@ConfigurationProperties(pre...
    99+
    2022-11-13
  • jquery如何获取class属性的值
    这篇文章主要为大家展示了jquery如何获取class属性的值,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“jquery如何获取class属性的值”这篇文章吧。jquery是什么jquery是一个...
    99+
    2023-06-06
  • js如何获取css属性值
    这篇文章主要讲解了“js如何获取css属性值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“js如何获取css属性值”吧! js获...
    99+
    2022-10-19
  • springboot如何获取application.yml里值的方法
    目录方法一:方法二:在项目中,很多时候需要用到一些配置信息,这些信息在测试环境和生产环境下可能会有不同的配置,后面根据实际业务情况有可能还需要再做修改。我们不能将这些配置在代码中写死...
    99+
    2022-11-13
  • springboot获取properties属性值的多种方式总结
    目录获取properties属性值方式总结1. 除了默认配置在 application.properties的多环境中添加属性2. 使用之前在spring中加载的value值形式3....
    99+
    2022-11-13
  • SpringBoot属性配置中获取值的方式是什么
    这篇文章主要介绍“SpringBoot属性配置中获取值的方式是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot属性配置中获取值的方式是什么”文章能帮助大家解决问题。Spring...
    99+
    2023-06-29
  • 使用springboot如何实现获取配置文件中的属性值
    本篇文章给大家分享的是有关使用springboot如何实现获取配置文件中的属性值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在spring boot中,简单几步,读取配置文件...
    99+
    2023-05-31
    springboot 配置文件
  • js数组对象里面如何获取某个属性值相等的对象
    目录js数组对象里面获取某个属性值相等的对象js获取两个数组及数组对象中相同和不相同的值总结js数组对象里面获取某个属性值相等的对象 例: var outArr=[ {"name"...
    99+
    2023-05-16
    js数组对象 js属性值 js获取属性值对象
  • 如何获取div的自定义属性值
    小编给大家分享一下如何获取div的自定义属性值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!举例:<div goods-h...
    99+
    2022-10-19
  • springboot如何获取yml文件的自定义参数
    目录如何获取yml的自定义参数需求实现方式自定义yml文件,获取配置参数操作yml文件依赖mqtt链接参数,及读取yml文件工具MqttParams.yml 文件位置 如何...
    99+
    2022-11-13
  • vueref如何获取子组件属性值
    目录ref获取子组件属性值父引入、注册组件并调用组件调用子组件的函数调用子组件的属性子组件更改属性父组件子组件ref获取子组件属性值 父引入、注册组件并调用组件 引入、注册 <...
    99+
    2022-11-13
  • java如何获取xml标签里面的值
    要获取XML标签里面的值,可以使用Java中的DOM或SAX解析器。使用DOM解析器:1. 导入相关的类:```javaimport...
    99+
    2023-09-27
    java
  • Java反射如何获取字段属性值
    目录Java反射获取字段属性值案例反射对象获取属性和值凭借成string描述直接上代码Java反射获取字段属性值 反射获取Java类的所有字段,包括所有父类中的字段。 类自身的字段可...
    99+
    2022-11-13
  • js如何获取标签元素data-*属性值
    这篇文章主要介绍“js如何获取标签元素data-*属性值”,在日常操作中,相信很多人在js如何获取标签元素data-*属性值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js如何获取标签元素data-*属性值...
    99+
    2023-06-30
  • JS如何获取JSP页面的值
    这篇“JS如何获取JSP页面的值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JS如何获取JSP页面的值”文章吧。js通常无...
    99+
    2023-06-26
  • SpringBoot如何获取application.properties中自定义的值
    目录结构: pom文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt...
    99+
    2022-11-12
  • JavaScript如何根据属性获取属性的父级
    这篇文章主要介绍“JavaScript如何根据属性获取属性的父级”,在日常操作中,相信很多人在JavaScript如何根据属性获取属性的父级问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript如...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作