首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问springboot组件中的application.yml属性

无法访问springboot组件中的application.yml属性
EN

Stack Overflow用户
提问于 2020-09-25 03:38:27
回答 2查看 92关注 0票数 0

我有一个包含以下属性的application.yml文件

代码语言:javascript
复制
NAME:
   CLASS:
     ID: ABC123456

下面是我的spring boot组件类

代码语言:javascript
复制
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;

@Component
@Slf4j
public class  ProcessMe {

@Value("${NAME.CLASS.ID}")
String StuId;

public boolean IsRightOrWrong(){
    System.out.println(StuId);
}
}

在上面的代码中,组件System.out.println(StuId);总是为空。当我打算使用Junit测试类调用这个函数时。上面的代码有什么问题?

EN

回答 2

Stack Overflow用户

发布于 2020-09-25 03:48:07

我认为这个解决方案在构造函数中定义如下

代码语言:javascript
复制
@Component
@Slf4j
public class  ProcessMe {

String StuId;

@Autowired
ProcessMe(@Value("${NAME.CLASS.ID}") String StuId) {
    this.StuId = StuId;
}
public boolean IsRightOrWrong(){
    System.out.println(this.StuId);
}
}

希望有用

票数 1
EN

Stack Overflow用户

发布于 2020-09-26 00:01:28

如果您可以启动应用程序,那么我相信您的配置是正确的。我的意思是StuId有一定的价值。

问题是如何测试When i am tying to call this function using Junit test class. What's wrong in the above code?

看起来您是从单元测试中调用的。然后,您需要将application.yaml克隆到测试配置文件中,这样您的测试容器才能读取数据,否则您必须模拟您的配置。

顺便说一句: Java对象属性应该使用camel大小写lol

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64053274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档