springboot @Configuration配置类里面使用@Value获取不到.yml配置文件属性的值

jelly_oy 发布于 2017/09/11 16:23
阅读 15K+
收藏 0

我使用的springboot 版本:1.4.1.RELEASE

application.yml文件片段-----------------------

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test

    .......

shiro:
  login:
    hashAlgorithmName: md5
    hashIterations: 2

------------------------------------------

ShiroConfig配置类:

@Configuration
public class ShiroConfig {

    @Value("${shiro.login.hashAlgorithmName}")
    private String hashAlgorithmName;     //获取不到值

    @Value("${shiro.login.hashIterations}")
    private int hashIterations;                  //获取不到值

  .....

}

hashAlgorithmName 和 hashIterations 始终获取不到值,

相同的用法,在DruidConfig中却可以获取到值,真是奇怪!

@Configuration
public class DruidConfig {
    @Value("${spring.datasource.url}")
    private String url;    //url可以获取到值

    ...
}

不知道有没有遇到类似问题的朋友,实在有点费解,不知道问题出在哪,

特发帖请教高手,谢谢大侠

 

 

加载中
1
jelly_oy
jelly_oy

问题已经解决,参考:

http://blog.csdn.net/wuxuyang_7788/article/details/70141812

0
jelly_oy
jelly_oy

我尝试在ShiroConfig中获取一个普通的值,

.yml --------------------------------

testValue: 中国

ShiroConfig.java---------------------------

@Value("${testValue}")
private String testValue;    //依然为null

所以我怀疑,是不是跟加载顺序有关?

当项目存在多个@Configuration配置类时,这个问题会不会都存在呢?麻烦高手支招啊

 

0
r
rogchen

configuration也是需要被扫描的,方法一就是在main方法里面添加@compontScan(path),

方法二:使用autocnfiguration

返回顶部
顶部