Spring表达式语言SpEL用法详解
什么是SpEL
SpEL是Spring表达式语言,它提供了一种表达式语言,可以在运行时计算表达式的值。SpEL可以用于访问JavaBean属性,调用Java方法,在运行时计算数学表达式等。
SpEL语法
SpEL语法非常灵活,可以完成各种复杂的计算。
变量表达式
变量表达式允许我们使用变量或者Spring的bean,变量表达式是通过#{}
符号包含的表达式。下面的例子展示了如何使用变量表达式。
@Service
public class MyService {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
@Service
public class MyOtherService {
private MyService myService;
public void setMyService(MyService myService) {
this.myService = myService;
}
public MyService getMyService() {
return myService;
}
}
@Configuration
public class MyConfig {
@Bean
public MyService myService() {
MyService myService = new MyService();
myService.setName("tony");
return myService;
}
@Bean
public MyOtherService myOtherService() {
MyOtherService myOtherService = new MyOtherService();
myOtherService.setMyService(myService());
return myOtherService;
}
}
@Component
public class MyComponent {
@Autowired
private MyOtherService myOtherService;
@Value("#{myOtherService.myService.name}")
private String myName;
//...
}
字面值表达式
字面值表达式是值本身的表达式,下面的例子展示了如何使用字面值表达式。
@Service
public class MyService {
private int sum = 10;
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
}
@Component
public class MyComponent {
@Autowired
private MyService myService;
@Value("#{6 * 7}")
private int result;
@Value("#{myService.sum}")
private int sum;
//...
}
方法调用表达式
方法调用表达式可以调用JavaBean中的方法,传递参数。方法调用表达式由Spring bean和方法名和参数列表组成。下面的例子展示了如何使用方法调用表达式。
@Service
public class MyService {
public int add(int a, int b) {
return a + b;
}
}
@Component
public class MyComponent {
@Autowired
private MyService myService;
@Value("#{myService.add(1,2)}")
private int result;
//...
}
总结
SpEL是Spring表达式语言,它提供了的很多表达式语法,用于在运行时计算表达式的值,SpEL可以用于访问JavaBean属性,调用Java方法,计算数学表达式等。在本文中,我们介绍了SpEL语法的各项内容,包括变量表达式,字面值表达式,方法调用表达式等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring表达式语言SpEL用法详解 - Python技术站