Spring Expression Language (SpEL)
用例参考
定义order.properties
order.id=1,2,3,4,5,6
order.name=TSL,奔驰,宝马,法拉利,保时捷,比亚迪
order.buyer={Smith:'55',Kevin:'33',Claire:'12',Cindy:'45',Char:'33',Michael:'18'}
定义Orders POJO
@Data
@Configuration
@PropertySource(value="classpath:order.properties",encoding="utf-8")
public class Orders {
@Value("#{'${order.id}'.split('\\,')}")
List<String> orderIds;
@Value("#{'${order.name}'.split('\\,')}")
List<String> orderNames;
@Value("#{${order.buyer}}")
Map<String,String> buyer;
@Value("#{${order.buyer}['Michael']?:'unknown man'}")
String buyName;
@Value("#{systemProperties['java.home']}")
String javaHome;
@Value("#{systemProperties['user.dir']}")
String userDir;}
测试用例
@Slf4j
@SpringBootTest
class LoadDataFromPropertiesTest {
@Resource
Orders orders;
@Test
void test() {
for (String orderID:orders.getOrderIds()) {
log.info(orderID);
}
for(String orderName:orders.getOrderNames()) {
log.info(orderName);
}
log.info(orders.getBuyer().toString());
log.info(orders.getBuyName());
log.info(orders.javaHome);
log.info(orders.userDir);
}
}