我有一个带有配置文件的 Spring.NET 程序。为了顺利地从测试到产品的过渡,我希望有一个环境变量来提供共享配置文件的路径,并使用它来导入资源,但似乎该问题<import resource="path"/>尚未得到解决。例如,如果我尝试加载文件,<import resource="\\server\share\${computername}\SpringConfig.xml"/>则会出现文件未找到异常,如下所示:
System.Configuration.ConfigurationErrorsException:创建上下文“spring.root”时出错:文件 [\server\share\${computername}\SpringConfig.xml] 无法解析为本地文件路径 - 资源不使用“file:”协议。---> Spring.Objects.Factory.ObjectDefinitionStoreException: IOException 从文件 [\server\share\${computername}\SpringConfig.xml] 解析 XML 文档 ---> System.IO.FileNotFoundException: 文件 [\server\share\ ${computername}\SpringConfig.xml] 无法解析为本地文件路径 - 资源不使用“file:”协议。
有没有办法可以在 Spring.NET 中拥有动态导入路径,最好无需编写代码?
无论如何,您可以使用一些额外的代码来做到这一点:
创建您自己的 FileSystemResource,它将替换资源名称中的占位符。从覆盖现有的 FileSystemResource 开始(在 Spring.Core.IO 命名空间中)
使用您自己的协议名称(例如:myfile://)在容器中注册新的 IResource 实现,请参阅此处的参考文档以获取示例:
用它!资源=“myfile://\server\share\${计算机名}\SpringConfig.xml”
| 归档时间: |
|
| 查看次数: |
2888 次 |
| 最近记录: |