当前位置: 首页 > 面试题库 >

在Spring FileSystemResource中使用基于环境变量的位置吗?

温成济
2023-03-14
问题内容

我要求将所有属性文件存储在目录中。该目录的位置应存储在系统环境变量中。在我的应用程序上下文中,我将需要访问此环境变量以创建FileSystemResource Bean。这是我通常会有的示例:

<bean id="properties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <bean class="org.springframework.core.io.FileSystemResource">
            <constructor-arg>
                <value>myprops.properties</value>
            </constructor-arg>
        </bean>
    </property>
</bean>

相反,我需要让它像

<value>${prop_file_location}/myprops.properties</value>

其中prop文件的位置是环境变量。有人知道这样做的简单方法吗?

我正在使用Spring 2.5.6和Java 1.6


问题答案:

后来我们升级到了Spring 3.0.X,我们能够利用spring表达式语言。我们的方法从三个bean简化为以下代码段:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
    <list>
        <value>classpath:defaults.properties</value>
        <value>file:/a/defined/location/project.properties</value>
        <value>file:${AN_ENV_CONFIGURED_DIR}/project.properties</value>
    </list>
  </property>

  <property name="ignoreResourceNotFound" value="true" />
  <property name="searchSystemEnvironment" value="true" />
  <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
</bean>

这使我们可以拥有一个静态已知的开发位置(第一个默认设置),或者具有通过env变量配置的部署位置。配置器按顺序处理这些操作(即,部署的优先级高于默认值)。



 类似资料:
  • 问题内容: 我要求将所有属性文件存储在目录中。该目录的位置应存储在系统环境变量中。在我的应用程序上下文中,我将需要访问此环境变量以创建FileSystemResource Bean。这是我通常会有的示例: 相反,我需要让它像 其中prop文件的位置是环境变量。有人知道这样做的简单方法吗? 我正在使用Spring 2.5.6和Java 1.6 问题答案: 后来我们升级到了Spring 3.0.X,我

  • 问题内容: 需要基于构建环境配置来设置标签的href值。 例如: 分期应有 产品应具有 当前设置: 生成命令: .env.staging.js: index.html: 在index.html中,这似乎不起作用。虽然类似的设置适用于JS文件 (可能是因为将JS文件解析并捆绑到一个文件中,并且捆绑程序在该时间点读取值) 尝试过的事情: index.html: (类似于PUBLIC_URL变量) 与浏

  • 我有一个Spring Boot应用程序,它将在各种环境中运行,根据它运行的环境,它将连接到不同的数据库。我有几个文件,每个环境都有一个,如下所示: : : 在我的每个环境中,我都有一个名为的环境变量,它被设置为它所处的环境类型,例如或(文件的名称与环境名称完全匹配)。 如何让spring boot读取这个环境变量并自动选择正确的文件?我不想因为这个包的部署方式(它不会作为jar运行)而不得不执行整

  • 问题内容: 在中,我有以下脚本正在工作: Bash中的功能等效于什么? 有直接的模拟吗?环境变量用于查找可执行文件。 问题答案: 将VAR设置为value。如果需要空格,请用单引号将其引起来。如果要对变量进行插值,请使用双引号,例如。

  • 问题内容: 我一直在阅读官方文档,但无法找到有关环境变量的任何信息。显然,有一些社区项目支持环境变量,但这对我来说可能是过大了。所以我想知道在使用Vue CLI创建的项目上是否有一些简单的开箱即用的功能可以正常工作。 例如,我可以看到,如果执行以下操作,则会打印出正确的环境,这意味着已经设置好了吗? 我对环境变量和Node有点陌生。 仅供参考,使用Vue CLI 3.0 beta版。 问题答案:

  • 最佳实践最好在values.yaml文件中定义环境变量还是在templates/deployment.yaml放入中定义环境变量? 如果有您使用的示例应用程序,您能提供帮助吗?