美文网首页
Springboot解析spel表达式

Springboot解析spel表达式

作者: eliteTyc | 来源:发表于2021-04-07 16:49 被阅读0次

    调用springboot解析spel表达式,可以通过表达式调用ioc容器中的bean或者解析自定义的参数

    • applicationContext 是直接通过注入的
    @Autowired
        private ApplicationContext applicationContext;
    
    • 自定义的参数在表达式中需要在前面加上#
    • 调用ioc容器中的bean的方法,不需要加#
    // 创建一个表达式解析器
            ExpressionParser parser =new SpelExpressionParser();
            // 将ioc容器设置到上下文中
            StandardEvaluationContext standardEvaluationContext = new StandardEvaluationContext(applicationContext);
            standardEvaluationContext.addPropertyAccessor(new BeanFactoryAccessor());
            // 创建一些自定义的参数
            HashMap<String, Object> params = new HashMap<>();
            params.put("name","张三");
            params.put("age",18);
            // 将自定义参数添加到上下文
            standardEvaluationContext.setVariables(params);
            Expression expression = parser.parseExpression("#{#name + '的年龄是:' + #age +sysNumberDefService.startNumber() }", new TemplateParserContext());
            String expressionValue = expression.getValue(standardEvaluationContext,String.class);
            System.out.println(expressionValue);
    

    相关文章

      网友评论

          本文标题:Springboot解析spel表达式

          本文链接:https://www.haomeiwen.com/subject/uwuukltx.html