首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当属性不存在或等于0时缺省值的SpEL (Spring)语法

当属性不存在或等于0时缺省值的SpEL (Spring)语法
EN

Stack Overflow用户
提问于 2018-12-18 01:58:56
回答 3查看 4.9K关注 0票数 4

如果一个Integer属性不存在,或者它的当前值是0,并且我终生不能正确地进行0比较,我会尝试将该属性设置为默认值1。

原始值(如果设置)将通过命令行传入。

下面是我的类中的相关代码行:

代码语言:javascript
复制
@Configuration
public class AppConfig {

    @Value("${${instance.procmultiplier} == 0 ? Integer.parseInt('1') : ${instance.procmultiplier}}")
    public Integer procMultiplier;
}

我已经尝试了@Value注释的许多变体,我发誓它曾经识别出0值,但我无法回到那个状态。我首先尝试简单地让它识别0值并默认为1,然后我将尝试插入一个null-check。

有没有办法在同一个注解中同时做这两件事?我的一个想法是将null-check和0-check分成两个不同的属性,基本上在属性文件中有procmultiplier=${instance.procmultiplier:1},然后将注释更改为@Value("${${procmultiplier} == 0 ? Integer.parseInt('1') : ${procmultiplier}}"),但我尝试的都不起作用。

我的命令是:mvn clean package && java -Dspring.profiles.active=json -Dinstance.procmultiplier=0 -jar target/MyApp-0.0.1-SNAPSHOT.jar

该属性最终只是等于我在命令行中设置的值。

关于如何检查不存在和0,如果两者都为真,默认设置为1,或者通过命令行设置为任何值,有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-18 02:26:53

我的问题似乎是使用${...}而不是#{...}。下面是我使用两个不同属性的解决方案:

bootstrap.properties

procmultiplier=${instance.procmultiplier:1}

AppConfig.java

代码语言:javascript
复制
@Configuration
public class AppConfig {

    @Value("#{${procmultiplier} == 0 ? 1 : ${procmultiplier}}")
    public Integer procMultiplier;
}

命令行:mvn clean package && java -Dspring.profiles.active=json -Dinstance.procmultiplier=0 -jar target/MyApp-0.0.1-SNAPSHOT.jar

还允许缺少instance.procmultiplier参数。

我仍然不知道如何用1个属性一次完成所有这些事情…

票数 3
EN

Stack Overflow用户

发布于 2018-12-18 02:01:36

根据this post的说法,你应该试试

代码语言:javascript
复制
@Value("#{someBean.someProperty != null ? someBean.someProperty : 'default'}")
private String ternary;
票数 1
EN

Stack Overflow用户

发布于 2021-11-28 10:37:30

这对我在xml中是有效的:

代码语言:javascript
复制
<bean id="myBean" class="myClass" >
    <property name="myProp" value="#{systemProperties['a.b'] ?: '${a.b}'}"/>
</bean>

如果存在,将从系统属性中获取,否则从属性文件中获取

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

https://stackoverflow.com/questions/53820716

复制
相关文章

相似问题

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