首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >依赖于其他属性的Spring属性

依赖于其他属性的Spring属性
EN

Stack Overflow用户
提问于 2016-03-21 16:41:54
回答 2查看 40.5K关注 0票数 41

我希望拥有属性,这些属性可以通过spring中的@Value引用,这些属性只能依赖于其他属性来创建。特别是我有一个属性,该属性描述目录的文件系统位置。

代码语言:javascript
复制
myDir=/path/to/mydir

按照惯例,该目录中有一个文件,它总是被称为myfile.txt。

现在,我希望通过bean中的@Value注释同时访问目录和文件。有时我想以字符串的形式访问它们,有时以java.io.Files的形式访问它们,有时以java.io.Files的形式访问它们(顺便说一句,这是非常有效的!)但由于这种情况,按需串接字符串并不是一种选择。

所以我当然能做的就是声明两者,但我最终会

代码语言:javascript
复制
myDir=/path/to/mydir
myFile/path/to/mydir/myfile.txt

我想避免这种情况。

因此,我提出了一个@Configuration类,它接受该属性并将其添加为新的PropertySource:

代码语言:javascript
复制
@Autowired
private ConfigurableEnvironment environment;

@Value("${myDir}")
private void addCompleteFilenameAsProperty(Path myDir) {
    Path absoluteFilePath = myDir.resolve("myfile.txt");

    Map<String, Object> props = new HashMap<>();
    props.put("myFile, absoluteFilePath.toString());
    environment.getPropertySources().addFirst(new MapPropertySource("additional", props));
}

正如您所看到的,在我的上下文中,我甚至创建了一个PropertyEditor,它可以转换为_java.nio.file.Path_s。

现在的问题是,由于某种原因,这个“在我的机器上工作”(在我的IDE中),但是没有在预期的目标环境上运行。在那里我得到

代码语言:javascript
复制
java.lang.IllegalArgumentException: Could not resolve placeholder 'myFile' in string value "${myFile}"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-22 08:00:16

弹簧可以结合性能。

代码语言:javascript
复制
myDir=/path/to/mydir 
myFile=${myDir}/myfile.txt

您还可以使用默认值,而不必首先在属性中定义myFile

属性文件

代码语言:javascript
复制
myDir=/path/to/mydir

在课堂上:

代码语言:javascript
复制
@Value("#{myFile:${myDir}/myfile.txt}")
private String myFileName;
票数 82
EN

Stack Overflow用户

发布于 2021-10-27 10:52:31

Spring表达式可用于引用属性。

在我的例子中

代码语言:javascript
复制
query-parm=QueryParam1=
query-value=MyParamaterValue

现在,在Spring中绑定它们。

代码语言:javascript
复制
 @Configuration
    public class MyConfig {
    @Value("${query-param}${query-value}")
    private String queryString;
 }

上面的代码将把QueryParam1=MyParamaterValue注入变量queryString。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36136874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档