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

Spring外部配置位置不工作

裴经义
2023-03-14
├── bin
│   ├── stop.sh
│   └── start.sh
├── config
│   ├── application-dev.properties
│   ├── application-local.properties
│   ├── application.properties
│   └── logback.xml
├── lib
    ├── myjar.jar
|__ logs
jar -jar ../lib/myjar.jar --spring.profiles.active=dev --spring.config.location=file:./../config/
--spring.config.location=file:./../config/,classpath:/

但就是不管用。我也试过在-d中使用这个选项,但这也不起作用。

谢谢你的帮助

共有1个答案

濮阳驰
2023-03-14

使用参数从jar运行的命令:

java -jar -Dfile.location=myfile.properties your_app.jar

在您的应用程序中,您可以获得以下价值:

System.getProperty("file.location");

和完整示例类配置:

@Configuration
@ComponentScan
public class MyConfig{

    @Bean
    public static PropertySourcesPlaceholderConfigurer properties2() throws IOException {
        PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer();
        PropertiesFactoryBean properties = new PropertiesFactoryBean();

        Resource resource = new FileSystemResource(System.getProperty("file.location"));

        properties.setLocation(resource);
        propertySourcesPlaceholderConfigurer.setProperties(properties.getObject());
        return propertySourcesPlaceholderConfigurer;
    }

}
@Value("${myperty.host}")
private String host;
 类似资料:
  • 基于此http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html文档,但我得到以下错误: 使用注释工作很好,但我真的希望远离它。这方面的任何帮助都是很好的 谢谢 我将此解释为文件${spring.application.name}.properties将从命令行传入

  • 主要内容:spring.config.location,示例 1,spring.config.additional-location,示例 2除了默认配置文件,Spring Boot 还可以加载一些位于项目外部的配置文件。我们可以通过如下 2 个参数,指定外部配置文件的路径: spring.config.location  spring.config.additional-location  spring.config.location 我们可以先将 Spring Boot 项目打包成 JAR

  • Netflix客户端配置库Archaius 它是所有Netflix OSS组件用于配置的库。Archaius是Apache Commons Configuration项目的扩展。它允许通过轮询源进行更改或将源更改推送到客户端来进行配置更新。Archaius使用Dynamic <Type> Property类作为属性的句柄。Archaius示例 class ArchaiusTest { Dyna

  • Spring Boot允许您外部化配置,以便您可以在不同的环境中使用相同的应用程序代码。 您可以使用属性文件,YAML文件,环境变量和命令行参数来外部化配置。 可以使用@Value注释将属性值直接注入到bean中,通过Spring的Environment抽象访问,或者通过@ConfigurationProperties绑定到结构化对象。 Spring Boot使用一个非常特殊的PropertySo

  • 我很困惑如何为外部配置设置位置, 基于https://docs.spring.io/spring-boot/docs/1.2.2.release/reference/html/boot-features-external-config.html我进行了一些外部配置,但失败了,下面是我的代码

  • 我在两个问题上需要你的帮助: 我怎样才能使这两个特性得到满足呢? 感谢您的帮助:)