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

 更新时间:2021年07月07日 08:59:48   作者:stay hungry,stay you  
这篇文章主要介绍了@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.21.126.237  #执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP
          port: 9097          #调度中心给微服务发送任务,通过此端口发送指令
          logpath: D:/temp    #执行器日志文件路径
          logretentiondays: 3  # 本地日志保存天数,-1为永远保存
package com.xxljob.config;
import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import cn.com.yusys.yusp.commons.job.core.executor.XxlJobExecutor;
@Configuration
@ConditionalOnProperty(name = "application.xxl.job.enabled", havingValue = "true", matchIfMissing = false)
public class XxlJobAutoConfiguration {    
    private Logger logger = LoggerFactory.getLogger(XxlJobAutoConfiguration.class);
    @Value("${application.xxl.job.admin.addresses}")
    private String adminAddresses;
    @Value("${application.xxl.job.executor.appname}")
    private String appName;
    @Value("${application.xxl.job.executor.ip}")
    private String ip;
    @Value("${application.xxl.job.executor.port}")
    private int port;
    @Value("${application.xxl.job.executor.logpath}")
    private String logPath;
    @Value("${application.xxl.job.executor.logretentiondays}")
    private int logRetentionDays;
    public XxlJobAutoConfiguration() {
    }
 
    @Bean(initMethod = "start", destroyMethod = "destroy")
    public XxlJobExecutor xxlJobExecutor() throws IOException {
        logger.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobExecutor xxlJobExecutor = new XxlJobExecutor();
        xxlJobExecutor.setAdminAddresses(adminAddresses);
        xxlJobExecutor.setAppName(appName);
        xxlJobExecutor.setIp(ip);
        xxlJobExecutor.setPort(port);
        xxlJobExecutor.setLogPath(logPath);
        xxlJobExecutor.setLogRetentionDays(logRetentionDays);
        return xxlJobExecutor;
    }
}

Properties:

在这里插入图片描述 在这里插入图片描述

赋值:

@Value(“true”) 直接赋值

@value注解获取yml文件中的值问题

在类中使用@Value注解获取yml配置文件中的值时,需要注意:

1、yml文件中,当值为0000

这种类型的值时,需要用双引号将值引起来。

比如:

错误:key=0000

正确:key=“0000”

如果不使用双引号的话,在使用@value注解时,得到的值是0,而不是0000

2、使用@Value注解得到的是null

需要使用@Autowired进行注入,对应类需要加上@Service

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

相关文章

  • Spring定时任务轮询本地数据库实现过程解析

    Spring定时任务轮询本地数据库实现过程解析

    这篇文章主要介绍了Spring定时任务轮询本地数据库实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • SpringBoot浅析安全管理之OAuth2框架

    SpringBoot浅析安全管理之OAuth2框架

    安全管理是软件系统必不可少的的功能。根据经典的“墨菲定律”——凡是可能,总会发生。如果系统存在安全隐患,最终必然会出现问题,这篇文章主要介绍了SpringBoot安全管理OAuth2框架的使用
    2022-08-08
  • IDEA中GitLab的使用详解

    IDEA中GitLab的使用详解

    这篇文章主要介绍了IDEA中GitLab的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • 如何在Maven项目配置pom.xml指定JDK版本和编码

    如何在Maven项目配置pom.xml指定JDK版本和编码

    maven是个项目管理工具,如果我们不告诉它要使用什么样的jdk版本编译,它就会用maven-compiler-plugin默认的jdk版本来处理,这样就容易出现版本不匹配的问题,这篇文章主要给大家介绍了关于如何在Maven项目配置pom.xml指定JDK版本和编码的相关资料,需要的朋友可以参考下
    2024-01-01
  • redis做服务间通信工具的项目示例

    redis做服务间通信工具的项目示例

    Redis是一种高效的服务间通信工具,它以键值对的形式存储数据,并支持多种数据类型和丰富的操作,本文主要介绍了redis做服务间通信工具的项目示例,感兴趣的可以了解一下
    2023-08-08
  • java screen的配置详解及注意事项

    java screen的配置详解及注意事项

    这篇文章主要介绍了java screen的配置详解及注意事项的相关资料,需要的朋友可以参考下
    2017-07-07
  • Java里遍历Map集合的多种方法总结

    Java里遍历Map集合的多种方法总结

    Java中的Map是一种键值对映射的数据结构,它提供了一些常用的方法用于获取、添加、删除和修改元素,在Java中,有多种方式可以遍历Map,本文将介绍其中的四种常用方式,并比较它们之间的优缺点,需要的朋友可以参考下
    2024-07-07
  • Java for循环几种写法整理

    Java for循环几种写法整理

    这篇文章主要介绍了Java for循环几种写法整理的相关资料,需要的朋友可以参考下
    2017-02-02
  • redis深入浅出分布式锁实现下篇

    redis深入浅出分布式锁实现下篇

    在单体应用中,如果我们对共享数据不进行加锁操作,会出现数据一致性问题,我们的解决办法通常是加锁。下面我们一起聊聊使用redis来实现分布式锁
    2022-08-08
  • Java中i++与++i的区别和使用

    Java中i++与++i的区别和使用

    这篇文章主要介绍了Java中i++与++i的区别和使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论