一、定义一个Message对象,提供getter和setter方法
package cn.libin.vo; public class Message { private String info; public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } }
二、在applicationContext.xml文件中配置这个类对象
<bean id="message" class="cn.libin.vo.Message"> <property name="info" value="hello world"/> </bean>三、引用配置内容,如果要导入外部配置,使用“@名称.方法”
import org.springframework.context.ApplicationContext; import org.springframework.context.expression.BeanFactoryResolver; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; import java.util.Date; /** * 外部配置的对象可以直接在表达式中使用,并且利用表达式的语法调用对象提供的方法 */ public class TestSpelDemo13 { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext( "applicationContext.xml"); ExpressionParser parse = new SpelExpressionParser(); Expression expression = parse.parseExpression("@message.getInfo()"); StandardEvaluationContext context = new StandardEvaluationContext(); //将配置文件的读取交给上下文 context.setBeanResolver(new BeanFactoryResolver(applicationContext)); System.out.println(expression.getValue(context)); } }
输出结果:hello world。