首页 > TAG信息列表 > spring-el

从属性文件注入时,Spring可以评估SpEL表达式中的所有字符/表达式吗?

我不知道为什么spring在将所有表达式从属性文件注入@PreAuthorize(…)批注时不直接评估所有表达式.我认为spring不会评估某些字符,例如'(‘,’)’,”’等,或者它会在属性文件的注入值之上添加特殊字符.为了澄清,让我们考虑以下示例. @PreAuthorize("hasRole('ROLE_ADMIN')") 上面

java-基于另一个bean的Spring条件Bean创建

我正在尝试找到一种使用Spring 3.2和XML配置仅在另一个bean /属性的值为true时创建一个bean的方法. <bean id="isEnabled" class="java.lang.Boolean"> <bean factory-bean="configurationService" factory-method="getBooleanValue">

java-多个键之一上的缓存逐出

在我的应用程序中,我有多个具有多个键的可缓存方法: @Cacheable(cacheNames = "valueCodes", key = "{#value, #fieldId, #projectId}") @Cacheable(cacheNames = "fieldNames", key = "{#field, #value, #projectId}") @Cacheable(cacheNames = "qi&q

java-@Value中的SpEL重构(加密属性)

我有一个Spring Security配置,必须使用加密的属性.我有实用程序静态方法PasswordUtil.decode(),通过它可以解码属性以进一步使用. 以下解决方案有效,但是特定的SpEL在我看来很难看.因此,我的问题是:是否可以将给定的SpEL表达式重构为更好/更短/更惯用的东西? @Configuration @Enable

java-Spring Expression Language-如果设置了Profile,则设置不同的值

我有这样的课: public AbstractConfig() { super(DataConfig.MGR_NAME); } 在DataConfig内部有: public final String MGR_NAME = "theManager"; 我发现SpEL文档令人困惑.如果设置了弹簧配置文件,是否可以更改值?也就是说,如果我的配置文件为“ AlternateManager”,请使用

java-将varargs传递给Spring spEL会导致“在com.sun.proxy上找不到方法”

我尝试编写用于权限评估的自定义类,因此它可以与Spring Security @PreAuthorize和Spring Expression Language一起使用,例如:(权限只是带有某些角色名称的常规Spring组件): @PreAuthorize("@permissionEvaluator.anyOfRoles(@authority.ADMIN)") PermissionEvaluator#anyOfRoles方

java – Spring – SpEL在@PreAuthorize(“hasPermission”)中将实体参数计算为空引用

我有问题,SpEL在此存储库的第二个方法中将实体参数作为空引用进行评估.第一种方法效果很好,id应该正确评估为Long. @NoRepositoryBean public interface SecuredPagingAndSortingRepository<T extends AuditedEntity, ID extends Serializable> extends PagingAndSortingR

java – Spring Boot – 如何在开发过程中禁用@Cachable?

我正在寻找两件事: >如何使用Spring启动“dev”配置文件禁用开发期间的所有缓存.在application.properties中,没有seam作为一般设置来关闭它.什么是最简单的方法? >如何禁用特定方法的缓存?我试着像这样使用SpEl: @Cacheable(value =“complex-calc”,condition =“#{${spring.profiles

java – Hazelcast查询可以使用对象方法吗?

我在文档中找不到这个. 如果我在hazelcast缓存中有一个复杂的对象: public class MyObj { private int something; private AnotherObject complexMember; } 我可不可以做: map.values(new SqlPredicate("something > 3 AND complexMember.someProperty > 3")); 我知道@C

春天的三元操作符

我的问题类似于this question.由于这个问题很老,所以想发布新问题. 我也在写下我的表达方式 <property name="to" value="#{ systemProperties['BR']} == '01' ? ${PROPERTY_VALUE_1_FROM_BUNDLE} : ${PROPERTY_VALUE_2_FROM_BUNDLE}" /> 当我从我的bean中获

java – 在Spring Expression Language中将随机数转换为整数

我使用spring schedule job并希望通过输入initialDelayString =“#{T(java.lang.Math).random()* 10000}”来随机延迟作业.我可以生成随机数,但值是一个长值(例如4242.423422432) 如何使用SpEL将值转换为整数?解决方法:首先,当前值不是很长,而是每个返回类型Math.random()的两倍. 此

控制台中的Spring表达式语言(SpEL)

有什么东西在某个地方有一个带有弹簧表达语言外壳的摇摆控制台吗?解决方法:根据org.springframework.expression子模块测试中的代码,您可以构建一个swing客户端来评估SpEL语句并提供所需的结果

spring – PropertySource无法转换布尔值

我有一个Spring应用程序,它有一些XML配置,使用@Value来连接属性文件的布尔值.我正在进行单元测试,使用@Configuration样式定义测试配置,@Value注释给出非字符串类型的问题.我查看了文档并发帖,但我没有运气排序. 堆栈跟踪: Caused by: org.springframework.beans.factory.BeanCreat

如何处理Spring Expression Language中的列表列表

我有POJO包含一些基本属性和另一个POJO列表(比如客户POJO),客户POJO又包含另一个POJO列表(比如地址POJO). 我可以使用Spring Expression Language’集合投影’运算符访问客户POJO列表中的所有条目的所有属性,以访问Employees {#Customers.![customerName]},{#Customer.com![customerA

java – 如何获取包含占位符的属性的原始值?

我试图在我的.properties文件中定义以下属性: personExpression=${person.surname} 然后由config类读取: @Configuration public class TemplateConfig { @Autowired private Environment environment; public String getPersonExpression() { return enviro

我可以在bean id属性中使用Spring EL吗?

我可以在bean的id属性中使用SpEL吗? 例如:  < bean id =“#{T(com.om.m).PublicStaticFinalStringProperty}”...... 这种方式不起作用,我应该改变什么,或者不可能?解决方法:奇怪但可能(样本使用春季3.1).不同版本的工作: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt

java – 如何在JSP中将数组传递给SpEL表达式

我试图使用SpEL来调用服务类的方法,例如: <spring:eval expression="@securityService.hasPermissionToAllArray('${data.regionsArray}')" /> 其中data是请求范围中的对象,它具有如下方法: public String[] getRegionsArray() { List<String> regions = new ArrayList&l

如何以编程方式解析spring安全表达式(例如在某些控制器中)

如何以编程方式解析spring(web)安全表达式,如hasRole(‘admin’)(不使用标签,注释或……)? (reference doc) 我找到了Spring: What parser to use to parse security expressions – 但我不知道如何查找或构建EvaluationContext,例如在弹簧控制器内. 没有提供EvaluationContext给出

数组方法参数的Spring表达式语言(SpEL)

我有一个Spring Integration项目,我试图在bean上调用一个方法,该方法将String对象和Class对象作为参数.我想传递给它的类对象是Long [] .class,但我无法弄清楚正确的语法.我尝试了以下各种组合无济于事: expression="@parser.readValue(payload, T(java.lang.Long[]))" 现在我只是

java – Spring-el线程中的SpelExpression是否安全?

Expression exp = parser.parseExpression("myParam.getValue()"); Expression类线程安全吗?我想将它存储在全局缓存中,如ConcurrentHashMap,以避免每次访问都进行编译.解决方法:Well Expression是一个接口,而不是一个类.但是,是的,如果您的解析器是标准的SpelExpressionParser,则

多线程 – SpelExpression线程安全吗?

具体来说,可以从具有不同上下文的同一SpelExpression上的多个线程安全地调用getValue(StandardEvaluationContext,Class)吗? 我看到Spring Source的Gary Russell提出并回答了这个问题.但是,我也看到有人报告并发问题.我查看了相关Spring类的源代码,我无法确定. 我希望得到Spring开发

java – 在Spring Framework中使用SPeL读取系统属性

我需要在我的一个配置文件中获取以下系统属性:-Dspring.profiles.active =“development”.现在我看到无数人都认为这可以通过Spring Expression Language完成,但我无法让它工作.这是我尝试过的(加上其中的许多变化). @Configuration @ComponentScan(basePackages = { ... }) publi

在Spring EL中使用复杂表达式(条件和括号)

我正在使用具有弹簧安全性的弹簧EL 是否有可能通过肠胃外检查制作“复杂”的条件表达式? @PreAuthorize("( hasRole('ROLE_USER') and ( isOwnerDocumentUUID( #docUuids ) ) or hasRole('ROLE_ADMIN') ") 抛出java.lang.IllegalArgumentException: Failed to parse expression

从属性文件或xml文件中将属性值注入PreAuthorize(…)java注释(未解析)

我在上一篇文章中已经问过这个问题:SpEL for spring security: Passing Values from XML to Java based SpEL configuration.但它还没有解决.我想将值从xml配置或从外部文件注入@PreAuthorize(…)注释.使用@Value注释进行注入并不容易. 为了回忆这个问题,我提供了以下信息. >我有以

java – SpEL(@NumberFormat)无效

—- SampleVO @NumberFormat(pattern = "###,##0") private int money=100000; —–控制器 @RequestMapping(value="/com/spelSample.do") public String spelSample(SampleVO sampleVO, Model model){ model.addAttribute("sampleVO", samp