当前位置: 首页 > 知识库问答 >
问题:

spring boot无法从application.yml获取配置

马侯林
2023-03-14
@SpringBootApplication(scanBasePackages={"com.test"})
public class Main {
    @Bean
    public Validator validator(){
        return new  org.springframework.validation.beanvalidation.CustomValidatorBean();
    }
    public static void main(String[] args) throws IOException {
        new SpringApplicationBuilder(Main.class)
        .properties("application.yml")
        .build()
        .run(args);
    }
}
@RestController
@RequestMapping("/test_traffic")
@Component
public class AnycastTrafficController {
    @Autowired
    TestService testService;

    @GetMapping("/test")
    public Object component() {
         return testService.getTraffic();
    }
}
@Service
public class TestService {
    @Autowired
    TestDao testDao;

    public Object getTraffic() {
        testDao.getTraff();
    }
}
@Component
public class TestDao {

    @Autowired
    MyDBConfig mydbConfig;

    public DB getMyDBConfig () {
        DB db = new DB(mydbConfig.id, mydbConfig.key);
        return db;
    }
}
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "mydb")
public class MyDBConfig {

    public String id;
    public String key;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getKey() {
        return key;
    }
    public void setKey(String key) {
        this.key = key;
    }
}
server:
  port: 8003
  context-path: /

logging:
  level:
    ROOT: INFO
    org.springframework: INFO
    org.springframework.data: INFO
    com.alibaba: INFO
  file: log/

docserver:
  accessKeyId: 1111
  accessKeySecret: 2222

---

spring:
  profiles: dev
  application:
    name: test-application
mydb:
  id: 1111111
  key: 2222222
the id should not be empty.

这意味着我的配置类没有从yml文件中获得配置数据,所以请告诉我哪里做错了。P.S(但是服务器端口8003可以通过应用程序找到)。谢了!

共有1个答案

东方俊材
2023-03-14

您的application.yml包含无效的属性选项。

而不是

spring:
  profiles: dev

你应该使用

spring:
  profiles:
    active: dev
 类似资料:
  • 我对Spring Boot是新手,对Java也比较陌生。我正在使用Spring文档中的Github OAuth2示例应用程序。开箱即用,一切都按预期工作,但是,当我试图将facebook()或github()方法移到一个新类中时,它们无法从src/main/resources/application.yml文件中获取信息。我试过将类放在与主应用程序类相同的包中,也试过将类放在另一个包中。 src/

  • 本文向大家介绍在SpringBoot 中从application.yml中获取自定义常量方式,包括了在SpringBoot 中从application.yml中获取自定义常量方式的使用技巧和注意事项,需要的朋友参考一下 要注意的地方是 application.yml 中不能用驼峰式写法(systemParams)要改成system-params 方法一: 引入依赖: 配置文件(applicatio

  • 我引用了Spring boot-inject map from application.yml来从application.yml文件中注入map 下面是我的application.yml代码段 属性文件如下所示 但是,我发现只有当setter和getter的格式正确时才会发生值注入,即getPairMap和setPairMap。在使用getPairs或setpairs时不是这种行为的原因是什么

  • 我一直在做一个springboot项目,其中需要使用进行配置 <code>应用程序。位于目录下的yml文件。 这是文件的内容: 在配置类中,我为每个字段都有变量。 这是跑步者文件: 尽管应用程序字段中的所有其他变量都是正确的,但其中包含一些与操作系统用户相关的内容。 应为toString- Actualt toString- PS:字母并不意味着它为空。它们已经被填充了! 我已经检查了一些类似的问

  • 我的logback-spring.xml从application.properties中读取正常,但从application.yml中读取不正常。在我的项目中,我们被要求仅使用YAML格式,因为该格式正在同一项目中的其他微服务中使用,所以我无法添加属性文件。请帮助我为什么我的application.yml在logback.xml中没有被读取 我尝试了各种方法,并在stackoverflow上搜索了

  • 我们有一个SpringBoot应用程序,并且正在使用jer来审核传入的HTTP请求。 我们实现了一个Jersey ContainerRequestFilter来检索传入的HttpServletRequest,并使用HttpServletRequest的getParameterMap()方法来提取查询和表单数据,并将其放入审计中。 这与getParameterMap()的javadoc一致: "请求