问题标签 [spring-el]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 带有@Value 的 Spring 表达式语言 (SpEL):美元与哈希($ 与 #)
${...}
与#{...}
. _ Spring 的文档只使用了#{...}
,但是有很多使用${...}
. 此外,当我开始使用 SpEL 时,我被告知要使用${...}
它并且效果很好。
对于那些感到困惑的人,我如何使用它的一个例子是
和一些属性文件:
我的问题是:
- 有什么区别还是一样?
- 是否已弃用一个版本,所以我应该使用另一个版本?
spring - 使用 Spring EL 的复杂表达式(条件和括号)
我正在使用带有弹簧安全性的弹簧-EL
是否可以用 parentesis 制作“复杂”的条件表达式?
抛出 java.lang.IllegalArgumentException:
解析表达式失败
但
被接受。
spring-mvc - 如何JUnit测试@PreAuthorize注释及其由spring MVC控制器指定的spring EL?
我在 Spring MVC Controller 中定义了这个方法:
然后在我的 JUnit 测试中,我想调用这个方法并确保 PreAuthorize 条件得到验证。但是,当我在我的 JUnit 测试中使用错误帐户设置用户主体时,没有错误并且该方法完成。似乎注释被绕过了。
但是当我以正常方式(不是测试)调用此方法时,PreAuthorize 得到验证。
如果可能的话,如何在 junit 测试中测试这个注释,如果它抛出一个异常,如何捕获异常?
谢谢,
尼古拉斯
spring - Spring SpEL 逻辑运算符
在 Spring 表达式语言 (SpEL) 中,每个文本关系运算符都有一个符号等价物。例如,eq
可以写成==
, 并且lt
可以写成<
(source here )。
然而,逻辑运算符没有符号等价物 - 至少据我所知。我必须使用and
and , andor
的预期符号不存在(由于某种原因不同,它具有等价物)。&
|
not
!
知道是否可用&
,|
或者是否可以扩展 Spring 以支持它们?
spring-integration - 如何在 Spring Integration 中使用 logging-channel-adapter 记录消息头值
我需要使用键“foo_bar”记录消息标题的值,以便当该标题的值为“baz”时日志消息看起来像这样:
标头 foo_bar 的值:baz
如何使用窃听器和记录通道适配器来做到这一点?
java - Spring 3:除非另一个 Bean 存在,否则注入默认 Bean
我想通过 XML 配置 Spring,如果存在特定的 bean,它将被注入到目标 bean 中。如果它不存在,将注入一个不同的默认 bean。
例如,如果我有这样的文件
并加载它,我想defaultCar
注入驱动程序。但是,如果我还加载以下文件:
我希望使用customCar
bean 而不是defaultCar
bean。我最初的尝试不起作用,但我认为说明了我想要实现的目标:
我知道如何使用 a 来执行此操作PropertyPlaceholderConfigurer
,但除了包含自定义 bean 的文件之外,我不想提供属性文件/VM 属性/环境变量/等。谢谢!
更新:
基于“使用工厂bean”的评论,我对此进行了调查并提出了以下解决方案。首先,我创建了一个通用工厂 bean,它允许您指定默认 bean 名称和覆盖 bean 名称:
要配置我的示例汽车驱动程序,您可以这样做:
我更喜欢使用 SpEL,但这有效。也许添加一个自定义模式元素会使这个更干净。
补充意见表示赞赏。
hibernate - 使用 Spel + hibernate 创建 Bean
我们正在使用 Spring MVC + 它内置的上传文件支持。我想使用 SpEL 设置最大上传大小。问题是这个值来自我们的数据库。因此,在我们的旧应用程序代码中,一旦我们上传了包含以下内容的文件,我们就会进行检查:
然后我们检查文件看它是否比这个大,并根据大小继续。
我想用我们的 servlet 配置中的以下调用替换该代码,如下所示:
问题是在初始化时我收到以下异常:
有什么办法可以做到这一点?
java - Spring 3.0 表达式语言 Java 通用参数
我正在使用 Spring 3,并且我有一个带有签名的静态方法的类My.Package.MyClass.build(Map<MyObject1,MyObject2> map)
。在我的spring bean文件中,我有以下内容:
当我运行它时,我收到一条错误消息,指出在类型build(java.util.LinkedHashMap)
上找不到该方法。My.Package.MyClass
我做了一些测试,当我从方法签名中删除泛型时,它工作正常。我认为这种转换会起作用。谁能告诉我我做错了什么?
谢谢,杰夫
spring - Spring EL (SpEL) 是否可以配置为忽略表达式中间的空对象
如果我有表达式:obj1.obj2.obj3
并且 obj2 为 null,则表达式失败并出现异常。有没有办法将 SpEL 配置为只返回 null?
spring-integration - 使用 SPeL 的 Spring Integration 过滤器表达式
我有一个包含允许值列表的配置 bean:
我已经使用名为“someValue”的字段填充了我的邮件标题,并且我想使用过滤器元素来排除 someValue 不在允许值列表中的邮件。
我的上下文如下所示:
但我得到:SpelParseException: EL1041E:(pos 1): After parsing a valid expression, there is still more data in the expression: 'comma(,)'