springboot#@ConfigurationProperties注解获取配置属性值为NULL?
描述
在util模块中创建了用于jwt的配置,通过@ConfigurationProperties注解获取,并在另一个模块(auth)中注入时初始化,但得到的值全部为NULL
- 尝试将配置文件写在auth中: 报配置文件不存在
- 尝试写在application.yml中: NULL
求指点,拜托了!
我的配置文件
jwt:
secret: sc@Login(Auth}*^31)&czxy% # 登录校验的明文
pubKeyPath: D://rsa//rsa.pub # 公钥地址
priKeyPath: D://rsa//rsa.pri # 私 钥地址
expire: 30 # 过期时间,单位分钟
我的JavaBean
@Slf4j
@Data
@PropertySource("classpath:config/auth.yml")
@ConfigurationProperties(prefix = "jwt")
@Configuration
public class JWTProperties {
private String secret; // 密文
private String pubKeyPath;// 公钥
private String priKeyPath;// 私钥
private int expire;// token过期时间
private PublicKey publicKey; // 公钥
private PrivateKey privateKey; // 私钥
//被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次
@PostConstruct
public void init() {
try {
log.info("密文: " + secret);
log.info("公钥地址: " + pubKeyPath);
log.info("私钥地址: " + priKeyPath);
File pubKey = new File(pubKeyPath);
File priKey = new File(priKeyPath);
if (!pubKey.exists() || !priKey.exists()) {
// 生成公钥和私钥并写入文件
RsaUtils.generateKey(pubKeyPath, priKeyPath, secret);
}
// 获取公钥和私钥
this.publicKey = RsaUtils.getPublicKey(pubKeyPath);
this.privateKey = RsaUtils.getPrivateKey(priKeyPath);
} catch (Exception e) {
log.error("初始化公钥和私钥失败! " + e);
throw new RuntimeException();
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
先看路径resource/config/auth.yml这是否正确。
然后需要创建属性的set方法。