Springboot如何获取yml、properties参数

目录
  • 如何获取yml、properties参数
    • 1、使用@Value()注解
    • 2、使用 @component
  • 配置文件读取yml自定义参数(亲测可用)
    • 首先自定义一个参数
    • 利用平时@value 获取值
    • 另一种方式
    • 类上面添加@component

如何获取yml、properties参数

1、使用@Value()注解

1.1 配置数据

如:在properties.yml文件配置如下数据

message_zh: 张三
message_en: ergouzi

在controller中获取:

1.2 读取数据

读取自定义文件:须加注解

@PropertySource(value = {"classpath:config.yml","classpath:config.properties"})

读取application文件不需要加注解

// 中文
@Value("${message_zh}")
private String message_zh;
// 英文
@Value("${message_en}")
private String message_en;
@RequestMapping(value = "/{id}")
public String index(HttpServletRequest request, @PathVariable Integer id){
    if (id == 1 ){
        request.setAttribute("info",message_zh);
    }else {
        request.setAttribute("info", message_en);
    }
    return "index";
}

2、使用 @component

@ConfigurationProperties(prefix = "user")
@PropertySource(value = "classpath:myConfig.properties")

首先在myConfig.properties或myConfig.yml中配置参数:

user.userName = '李二狗'
user.password = 'admin'

2.1 javabean

/**
 * 〈一句话功能简述〉<br> 
 * 〈yml或properties配置参数〉
 *
 * @author 丶Zh1Guo
 * @create 2018/11/21
 * @since 1.0.0
 */
@Component                                // 组件
@ConfigurationProperties(prefix = "user")              // 前缀
@PropertySource(value = "classpath:myConfig.properties")    // 自定义配置文件路径
public class properConfig {
    private String userName;   // 注意要和配置文件一致
    private String password;
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

2.2 controller

/**
 * 〈一句话功能简述〉<br> 
 * 〈〉
 *
 * @author 丶Zh1Guo
 * @create 2018/11/21
 * @since 1.0.0
 */
@restController
public class template {
    @Autowired
    properConfig config;
    @RequestMapping(value = "/config")
    public String config(){
        return config.getUserName();
    }
}

总结:

第一种方法适合只取某些数据

第二种方法适合取所有数据

yml和properties区别

yml:key:(空格)value

properties: key = value

配置文件读取yml自定义参数(亲测可用)

dict:
  js:
    url: D:\jsFile\

首先自定义一个参数

@Component
@Data
@ConfigurationProperties(prefix = "dict.js")
@PropertySource(value = "classpath:application-dev.yml")
public class PropertisParam {
    private String url;
}

利用平时@value 获取值

然后在所需要的调用的配置类里面注入PropertisParam,利用@PostConstruct初始化值

@Resource
private PropertisParam param;
private static String root=null;
@PostConstruct
public void init(){
    root = param.getUrl();
}

另一种方式

@Data
@Component
@ConfigurationProperties(prefix = "spring")
public class LoginBody {
    private String appid;
    private String apiCode;
    private String userName;
}

基本写法就不解释了:主要讲一哈注入方式

类上面添加@component

private static LoginBody loginBody;
@Resource
public void init(LoginBody loginBody) {
    SecurityUtil.loginBody = loginBody;
}

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

(0)

相关推荐

  • SpringBoot获取yml和properties配置文件的内容

    (一)yml配置文件: pom.xml加入依赖: <!-- 支持 @ConfigurationProperties 注解 --> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-configuration-processor --> <dependency> <groupId>org.springframework.boot</groupId>

  • SpringBoot读取properties或者application.yml配置文件中的数据

    读取application文件 在application.yml或者properties文件中添加: user.address=china user.company=demo user.name=让我康康 1.使用@Value注解读取 直接 代码如下: package im.homeapi.controller; import org.springframework.beans.factory.annotation.Value; import org.omg.CORBA.PUBLIC_MEMBE

  • 基于springBoot配置文件properties和yml中数组的写法

    目录 springBoot配置文件properties和yml数组写法 这两种方法你选择哪种都可以 .properties和.yml的写法区别 springBoot配置文件properties和yml数组写法 这里介绍一下springBoot中的两种文件配置方式中数组的使用,也就是集合. 以下是我springBoot中使用的 application.properties 文件 其实很好理解,我的configs是一个集合,configs[0].appid代表我配置的第一个对象中的appid的值 m

  • SpringBoot不读取bootstrap.yml/properties文件问题

    目录 今天写创建了一个SpringBoot项目,配置文件从其他项目拷贝了一份bootstrap.yml 之前一直用的application.yml 心想:application.yml 优先级没有bootstrap.yml 高,bootstrap配置文件肯定没问题 项目一跑来,发现配置文件里面的内容没读取到. 之后通过各种查资料,才明白了application.yml 和bootstrap.yml 的区别,不仅仅是优先级的问题. 先说我的问题是什么原因吧: SpringBoot 项目中如果没有依

  • springboot代码,注解配置获取yml,properties文件的map即键值对

    目录 注解配置获取yml,properties文件map即键值对 yml获取自定义键值对 properties 获取自定义键值对 properties配置应用,为什么需要使用properties文件 注解配置获取yml,properties文件map即键值对 yml获取自定义键值对 yml中的键值对 test:   map:     key1: value1     key2: value2     key3: value3 pom中的依赖配置 <dependency>     <gro

  • Springboot如何获取yml、properties参数

    目录 如何获取yml.properties参数 1.使用@Value()注解 2.使用 @component 配置文件读取yml自定义参数(亲测可用) 首先自定义一个参数 利用平时@value 获取值 另一种方式 类上面添加@component 如何获取yml.properties参数 1.使用@Value()注解 1.1 配置数据 如:在properties.yml文件配置如下数据 message_zh: 张三 message_en: ergouzi 在controller中获取: 1.2 读

  • springboot如何获取yml文件的自定义参数

    目录 如何获取yml的自定义参数 需求 实现方式 自定义yml文件,获取配置参数 操作yml文件依赖 mqtt链接参数,及读取yml文件工具 MqttParams.yml 文件位置 如何获取yml的自定义参数 需求 通过yml文件配置参数,在需要的地方获取并使用参数 实现方式 方式一: 先上要获取的配置参数,在用到参数的位置获取yml文件里面配好的值,如果就一两个地方用到,那直接写死也不是不行,但是最好通过配置文件的方式,万一参数变了,只要改配置文件就行,业务代码不用动 yml配置参数: Con

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

    目录 如何获取yml里面的属性值 开发环境 项目结构 pom依赖 springboot启动类 person.yml person.java Dog.java SpringbootDemoApplicationTests 控制台输出 获取.yml中自定义参数 通过@Value获取 通过@ConfigurationProperties(prefix = "weixinAndAli")注解 如何获取yml里面的属性值 开发环境 idea jdk1.8 项目结构 pom依赖 <?xml

  • SpringBoot如何获取application.properties中自定义的值

    目录结构: 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/

  • @Value如何获取yml和properties配置参数

    @Value获取yml和properties配置参数 Yml: #定时任务配置 application: xxl: job: enabled: true admin: addresses: http:///yusp-job-admin/ #127.0.0.1:8080指网关ip:port,yusp-job-admin为调度中心服务名称.通过网关,注册到微服务的/api/server接口,完成注册动作 executor: appname: af_job #执行器名称,要求务必唯一 ip: 10.2

  • springboot中.yml文件参数的读取方式

    目录 yml文件参数的读取 附上一个较为常见的application.yml文件示例 正常在controller中 通过config文件的读取 关于yml文件书写的注意事项 yml文件参数的读取 附上一个较为常见的application.yml文件示例 server: port: 9999 use-forward-headers: true tomcat: remote-ip-header: X-Real-IP protocol-header: X-Forwarded-Proto spring:

  • springboot获取URL请求参数的多种方式

    1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @param username * @param password * @return */ @RequestMapping("/addUser1") public String addUser1(String username,String password) { System.out.pri

  • springboot如何获取application.yml里值的方法

    目录 方法一: 方法二: 在项目中,很多时候需要用到一些配置信息,这些信息在测试环境和生产环境下可能会有不同的配置,后面根据实际业务情况有可能还需要再做修改.我们不能将这些配置在代码中写死,最好是写到配置文件中,比如可以把这些信息写到 application.yml 文件中. 那么,怎么在代码里获取或者使用这个地址呢?有2个方法. 方法一: 我们可以通过@Value 注解的 ${key} 即可获取配置文件(application.yml)中和 key 对应的 value 值,这个方法适用于微服务

随机推荐