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

Spring Boot属性解析

单于淇
2023-03-14
java prettyprint-override">      @Bean(destroyMethod = "close")
      DataSource dataSource(Environment env) {
        HikariConfig dataSourceConfig = new HikariConfig();

        dataSourceConfig.setDriverClassName(env.getRequiredProperty(PROP_DB_DRIVER_CLASS));    
        dataSourceConfig.setJdbcUrl(env.getRequiredProperty(PROP_DB_URL));
        dataSourceConfig.setUsername(env.getRequiredProperty(PROP_DB_USER));
        dataSourceConfig.setPassword(env.getRequiredProperty(PROP_DB_PASSWORD));

        return new HikariDataSource(dataSourceConfig);    
      }

“env”为:“org.springframework.core.env.environment”

现在,当我在Eclipse中运行Spring Boot应用程序时,我希望这段代码从类路径中的application.properties获取属性(在project/src/main/resources中),但它使用的是project/config中的另一个application.properties。为什么会发生这种情况,我如何防止这种行为呢?(project/config中的文件是用于其他环境的文件,而不是dev)。

共有1个答案

仲孙华奥
2023-03-14

你无法阻止你所看到的行为。application.properties文件的优先顺序在文档中描述:

SpringApplication从以下位置的Application.properties文件中加载属性,并将它们添加到Spring环境:

  1. 当前目录的/config子目录
  2. 当前目录
  3. 类路径/config
  4. 类路径根

code>project/config中的文件是其他环境的文件,而不是开发环境的文件

这似乎意味着您认为src/main/resources中的文件是用于开发的。在该位置,默认情况下,它将打包在应用程序的jar文件中。因此,该位置更适合应用程序在开发后使用的属性。

您可以反过来使用这两个位置。将开发时间属性放置在projectproject/config中的文件中,将其他环境的属性放置在src/main/resources中的文件中。

 类似资料:
  • 在尝试单元测试包含autowired Dao对象的服务类时抛出该错误,该对象在Spring boot Rest服务中使用Junit和Mockito在内部使用autowired JdbcTemplate

  • 当运行我的jar文件:java-jar target/places-1.0-snapshot.jar时,我得到了下一个错误: 我的pom.xml包含spring-boot-maven-plugin: 知道我还能试试什么吗?

  • 本文向大家介绍innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解,包括了innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解的使用技巧和注意事项,需要的朋友参考一下 innerHTML属性用来读取或设置某个节点内的HTML代码。 outerHTML属性用来读取或设置HTML代码时,会把节点

  • 我需要从正在运行的实例中转储springboot应用程序属性,可以吗?我需要它的原因:我正在使用链接配置文件,但其中一个属性设置不正确。谢谢

  • 本文向大家介绍Python属性和内建属性实例解析,包括了Python属性和内建属性实例解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Python属性和内建属性实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 私有属性添加getter和setter方法 2. 使用property升级getter和setter方法 运行

  • 我有一个关于2个Drools属性的问题-显著性和无循环 我理解这个属性阻止了一个规则被执行到相同的事实,这将导致无限循环。我的问题是关于一个我不太明白的关于这个属性的例子: 如果没有“无循环”,为什么会导致无限循环?