写BUG的派大星

Patrick Star

  • 首页
  • 归档

  • 搜索
设计模式 Gis Kafka Druid 微信小程序 Java 开源项目源码 物体识别 机器学习 Mybatis 微服务 Feign OpenVPN CSS Streamsets CDH SpringCloud SpringBoot maven 分布式 Shell Tree Linux js WebSocket 多线程 集群 Hadoop 大数据 JDK ElasticSearch MySQL 数据库 Redis Http Nginx

SpringBoot中@Value无法赋值给静态变量

发表于 2020-05-17 | 分类于 Java | 0 | 阅读次数 830

配置文件application.yml是这样写的:

authox:
  sql:
    url: jdbc:mysql://47.100.237.208:3306/cloudtest?useUnicode=true&characterEncoding=utf-8&useSSL=false
    user: user
    password: password
    driver-class-name: driver-class-name

当使用下面的方式的取值时:

@Value("${authox.sql.url}")
private static String url;

@Value("${authox.sql.username}")
private static String user;

@Value("${authox.sql.password}")
private static String password;

@Value("${authox.sql.driver-class-name}")
private static String driver;

这样子赋值给静态变量,在编译阶段也不会报错,只是使用时取出的数据会是null。
@Value注解只能给普通变量赋值,无法赋值给静态变量。


解决方法

先使用@Component将类注册为一个组件。

然后将@Value注解写在set方法上,通过set方法来修改静态变量即可,如下所示:

@Component
public class JdbcUtils{
	private static String URL;
	private static String USER_NAME;
	private static String PASS_WORD;
	private static String DRIVER_NAME;
	@Value("${authox.sql.url}")
	public void setUrl(String url) {
	    JdbcUtils.URL = url;
	}

	@Value("${authox.sql.username}")
	public void setUser(String user) {
	    JdbcUtils.USER_NAME = user;
	}

	@Value("${authox.sql.password}")
	public void setPassword(String password) {
	    JdbcUtils.PASS_WORD = password;
	}

	@Value("${authox.sql.driver-class-name}")
	public void setDriver(String driver) {
	    JdbcUtils.DRIVER_NAME = driver;
	}
}
  • 本文作者: Patrick
  • 本文链接: https://www.write1bug.cn/archives/springboot中value无法赋值给静态变量
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 设计模式 # Gis # Kafka # Druid # 微信小程序 # Java # 开源项目源码 # 物体识别 # 机器学习 # Mybatis # 微服务 # Feign # OpenVPN # CSS # Streamsets # CDH # SpringCloud # SpringBoot # maven # 分布式 # Shell # Tree # Linux # js # WebSocket # 多线程 # 集群 # Hadoop # 大数据 # JDK # ElasticSearch # MySQL # 数据库 # Redis # Http # Nginx
Maven中dependencies和dependencyManagement的区别
Eureka
  • 文章目录
  • 站点概览
Patrick

Patrick

不是在改BUG,就是在写BUG。

52 日志
9 分类
36 标签
RSS
E-mail
Creative Commons
© 2018 — 2023 Patrick
人生如逆旅|我亦是行人
鲁ICP备18043140号-1