在 spring 中加载属性文件

2023-12-12

我们的一个团队已经以这种方式实现了加载属性(请参见下面的伪代码),并建议这种方法是正确的,因为使用这种方法的客户端应用程序可以自由地将属性保留在任何文件中。与广泛使用的 propertyplaceholderconfigurer 相反。

应用程序上下文.xml

<bean class="com.mypackage.Myclass">
<property name="xml" value="classpath:"{com.myapp.myproperty1}"> </property> 
</bean>

配置属性

com.myapp.myproperty1=data.xml

编辑:我应该添加它是 data.properties 而不是 data.xml。我们想要加载一个属性文件(该属性文件在 config.properties 中作为“属性”给出。 com.myapp.myproperty1=数据.properties

java类

import org.springframework.core.io.Resource;
public class Myclass {

private Resource xmlField;

// setter & getter methods..

}

使用 spring core.io.Resource 是否正确?

另一个原因是客户端应用程序想要加载特定于环境的配置。我建议使用 propertyconfigurer 并使用 Maven 配置文件来生成特定于环境的构建

您能建议哪种情况适合哪种情况吗?如果不同场景下有不同,请帮我指出?

thanks


您可以将属性放入任何文件中并仍然使用PropertyPlaceholderConfigurer。这是一个既满足您同事的担忧又满足您对环境特定内容的需求的示例:

<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <!-- default settings -->
            <value>classpath:MyCompany.properties</value>
            <!-- environment-specific settings -->
            <value>classpath:MyCompany.${mycompany.env:dev}.properties</value>
            <!-- keep your coworker happy -->
            <value>classpath:${mycoworker}</value>
            <!-- allows emergency reconfiguration via the local file system -->
            <value>file:///${user.home}/MyCompany.properties</value>
        </list>
    </property>
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
    <property name="ignoreResourceNotFound" value="true" />
    <!-- should be validated separately, in case users of the library load additional properties -->
    <property name="ignoreUnresolvablePlaceholders" value="false"/> 
</bean>

如果你传入 no-D参数,然后您将选择以下属性文件,其中后面的文件中的属性将覆盖之前确定的值。

  1. MyCompany.properties 离开类路径
  2. MyCompany.dev.properties 离开类路径
  3. $HOME/MyCompany.properties(如果存在)

要交换 #2 的生产配置,只需传递-Dmycompany.env=prod到爪哇。同样,你的同事也可以通过-Dmycoworker=/some/path/config.properties如果他/她愿意的话。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 spring 中加载属性文件 的相关文章

  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • Hibernate 挂起或引发延迟初始化,没有会话或会话已关闭

    我正在增强旧的 Spring Hibernate 应用程序 但我陷入困境 我有一种方法可以读取 3000 多行长的文件 每行都有一条记录 必须与数据库中的某些内容进行比较 然后必须将寄存器添加到数据库 多对多表 表和关系是 Branch h
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后

随机推荐

  • 如何使用 Zapier 代码发布推文

    以下内容在 Code by Zapier 操作中不起作用 fetch https api twitter com 1 1 statuses update json status encodeURIComponent textToTweet
  • Java内存转储问题

    我尝试使用下面的代码创建内存转储 usr lib jvm j2sdk1 5 sun bin jmap heap 10699 但我遇到了下面提到的错误 任何人都可以帮助我 正在附加进程 ID 10699 请稍候 附加到进程时出错 sun jv
  • 不带参数的 git filter-branch 有什么作用?

    什么是git filter branch没有争论吗 我在我的仓库上运行了这个 不小心过早地按了回车键 没有什么 它似乎计算了哈希值并没有发现任何变化
  • ActionScript 2 缺乏 Flash ActionScript 3 功能

    自从 Adob e 随 Flash Player 9 引入 ActionScript 3 以来 我们中的许多人转换得很慢 简而言之 我想知道 AS3 作为一个框架可以做什么 这在 AS2 中是根本不可能或非常困难的 我不是在谈论现成的组件
  • 如何从 java servlet 中的 POST 数据中分离出查询字符串参数

    当您在 servlet 中收到 doGet 或 doPost 调用时 您可以使用getparameterxxx 在一个简单的地方获取查询字符串或发布数据 如果调用是 GET 您可以从 url 查询字符串获取数据 如果调用是 POST 您将获
  • CPU 如何从 RAM 访问应用程序和数据

    在应用程序加载到 RAM 并打开文件后 因此文件的数据也存储在 RAM 中 我在理解 CPU 如何从 RAM 访问应用程序和数据时遇到了一些困难 根据我的理解 CPU 只是在程序计数器滴答时从 RAM 获取指令或在中断后执行任务 那么它如何
  • 在 protobuf 消息中存储单个字节

    我使用什么数据类型在协议缓冲区消息中存储单个字节 查看列表位于https developers google com protocol buffers docs proto scalar似乎 int32 类型之一是最合适的 有没有更有效的方
  • 使用比较运算符比较 time_t 值

    我有2个time t值 我想找出哪一个更大 time t是内部的 int64在我的平台上 我可以用吗 lt gt and 运算符来比较值 我不想知道两个时间值之间的差异 代码只会在 Windows 上运行 所以我不关心可移植性 以这种方式比
  • 如何使用Python脚本控制LabView VI前面板开关(开/关、条调节器)?

    我有一个LabView前面板控制硬件的开关和传感器电压调节器 需要使用 Python 脚本来控制它们 我对此了解不多LabView 请解释如何做到这一点 我在 LabVIEW 讨论板上找到了一份参考资料 该参考资料成功地this 它使用以下
  • 如何在 C++ 中将窗口的屏幕截图作为位图对象获取?

    如何在 C 中将窗口的屏幕截图作为位图对象获取 假设我已经有了窗口句柄 我还想知道是否可以在最小化状态下获取窗口的屏幕截图 这里的 C 是指 VC 以及与 Windows XP win32 相关的所有库 你应该调用 PrintWindow
  • RubyMine 代码自动完成

    我即将习惯在 Android Studio 中使用 Java 最棒的是一切都被强烈声明 因此 当我输入 MyClass someme 时 IDE 会为我提供高级代码自动完成功能 发展是迅速而令人愉快的 但后来我想学习 RubyOnRails
  • 如何在 Bash 中读取文件或标准输入

    以下 Perl 脚本 my pl 可以从命令行参数中的文件或从标准输入 标准输入 while lt gt print perl my pl将从标准输入读取 而perl my pl a txt将从中读取a txt 这非常方便 Bash 中有类
  • 如何将 2 个 Excel 文件合并为一个具有不同工作表的 Excel 文件?

    我有 2 个 Excel 文件 我想将它们合并为 1 个具有单独工作表的文件 我尝试与 Microsoft Office Interop Excel 进行合并 但我不明白如何使用它 对于叶海亚 这里是获取范围的方法 我想将它们与不同的文件合
  • 如何为 cout 编写一个允许表达语法的函数包装器?

    我想包起来std cout用于格式化 如下所示 mycout what type x optional args do some formatting on x first std cout lt lt x 并且仍然能够使用表达语法 例如
  • 样式和主题的背景问题

    在 attrs 我有
  • 强制方向为纵向模式

    我的所有应用程序都处于纵向模式 但我有一个横向模式的视图控制器作为图像库 在 项目摘要 选项卡上启用 LandscapeLeft 模式 因此我必须在视图控制器的其余部分中以这种方式禁用旋转 但图像库的 VC 中除外 我想保持旋转为纵向模式
  • 我可以仅使用 twiml bin 将短信转发到电子邮件吗?

    非常清楚如何使用 twilio 将 SMS 转发到电子邮件地址 他们有一个使用托管在第三方服务器上的 php 代码执行此操作的很好的示例 但是 我想仅使用 twiml 应用程序将短信转发到电子邮件地址 而不使用其他第三方请求 代码 我尝试使
  • Spring boot Tomcat – 启用/禁用目录列表

    I have spring boot应用程序和我正在使用embedded tomcat作为网络服务器 我在列出目录时遇到问题 我现在就想怎样才能enable or disable listing directories在嵌入式tomcat中
  • 更改 JPanel Graphics g 颜色绘制线

    我有一个类似于绘画的程序 而且我正在尝试实现更改笔颜色 但是当我更改颜色时 当前绘制的所有内容都会更改为红色 例如在我的程序中 我怎样才能使其不会将当前绘制的所有内容重新绘制为当前颜色改变颜色 下面的代码将编译并运行 JPanel 绘图区域
  • 在 spring 中加载属性文件

    我们的一个团队已经以这种方式实现了加载属性 请参见下面的伪代码 并建议这种方法是正确的 因为使用这种方法的客户端应用程序可以自由地将属性保留在任何文件中 与广泛使用的 propertyplaceholderconfigurer 相反 应用程