美文网首页
Spring基础篇(9)-普通JAVA类动态读取@Value的值

Spring基础篇(9)-普通JAVA类动态读取@Value的值

作者: 小胖学编程 | 来源:发表于2020-11-11 21:44 被阅读0次

Spring支持读取启动参数覆盖配置文件中的参数。所以普通JAVA类中若想读取Spring的配置参数,可以使用下面的方式。

1. Spring支持的读取方式

SpringBoot2.x基础篇—常用注解(@Value&@ConfigurationProperties)中。可以使用如下的配置读取yml的配置:

@RestController
public class UserController {
    private static Logger logger = LoggerFactory.getLogger(UserController.class);

    @Value("${java.scheduled.validateTime}")
    private volatile String time;
}

依赖BeanFactory可以动态的读取@Value注解的值。

2.JAVA类动态读取@Value的值

@Slf4j
@Service
public class SpringBeanFactoryUtil implements BeanFactoryAware {
    private static BeanFactory beanFactory;

    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
        this.beanFactory = beanFactory;
    }

    /**
     * 动态解析yml的值。
     * @param value ${}格式
     * @return 若是解析失败或者未查找到,均返回null
     */
    public static String resolve(String value) {
        try {
            if (beanFactory != null && beanFactory instanceof ConfigurableBeanFactory) {
                return ((ConfigurableBeanFactory) beanFactory).resolveEmbeddedValue(value);
            }
        }catch (Exception e){
            log.error("",e);
        }

        return null;
    }
}

使用方式:

在普通JAVA类中,直接使用下面的代码就可以动态的读取Spring配置文件的值。

SpringBeanFactoryUtil.resolve("${spring.cloud.config.profile}");

推荐阅读

更多的学习目录

相关文章

  • Spring基础篇(9)-普通JAVA类动态读取@Value的值

    Spring支持读取启动参数覆盖配置文件中的参数。所以普通JAVA类中若想读取Spring的配置参数,可以使用下面...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java基础:类加载器

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 什么是类加...

  • Spring 复盘 | AOP

    Spring AOP 基础 Java 动态代理实现,阅读文章之前,你最好有以下基础: java动态代理 1、什么是...

  • 2018-06-21-@Value

    为了简化读取properties文件中的配置值, spring支持@value注解方式来获取, 这种方式大大简化了...

  • spring常用注解-@Value

    @value将外部的值动态注入到Bean中 Bird 配置类 测试类 运行结果

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

  • Java动态代理简析原理

    说下Java动态代理,Spring的AOP就是基于Java的动态代理实现的。动态代理用到的几个类和接口,Proxy...

  • JAVA && Spring && SpringBoot2.x学

    JAVA && Spring && SpringBoot2.x — 学习目录 JAVA篇 JAVA基础篇(1)-格...

网友评论

      本文标题:Spring基础篇(9)-普通JAVA类动态读取@Value的值

      本文链接:https://www.haomeiwen.com/subject/vbmybktx.html