多平台统一管理软件接口,如何实现多平台统一管理软件接口
458
2022-12-08
Spring EL表示式的运用@Value说明
Spring EL表达式语言,支持在XML和注解中表达式,类是于jsP的EL表达式语言。
在Spring开发中经常涉及调用各种资源的情况,包含普通文件、网址、配置文件、系统环境变量等,我们可以使用Spring的表达式语言实现资源的注入。
Spring主要在注解@value的参数中使用表达式。
本事咧演示一下情况:
注入普通字符串
注入操作系统属性
注入表达式运算结果
注入其他Bean的属性
注入文件内容
注入网址内容
注入属性文件(注意:用的是$符号)
配置文件test.properties:
book.author=wangyunfei
book.name=spring boot
测试文件test.text:
你好!Spring boot
注入类:
@Configuration // 声明当前类是一个配置类,相当于Spring配置的XML文件
// 包扫描,并排除了对BeanConfig的扫描
@ComponentScan(basePackages={"com.chenfeng.xiaolyuh"}, excludeFilters={@ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value={BeanConfig.class, AopConfig.class})})
@PropertySource("classpath:test.properties")// 指定文件地址
public class ELConfig {
@Value("注入普通字符串")// 注入普通字符串
private String normal;
@Value("#{systemProperties['os.name']}")// 注入操作系统属性
private String osName;
@Value("#{T(java.lang.Math).random() * 100.0 }")// 注入表达式结果
private double randomNumber;
@Value("#{demoELService.another}")// 注入其他Bean属性
private String fromAnother;
@Value("classpath:test.txt")// 注入文件资源
private Resource testFile;
@Value("https://baidu.com")// 注入网址资源
private Resource testUrl;
@Value("${book.name}")// 注入配置文件【注意是$符号】
private String bookName;
@Autowired// Properties可以从Environment获得
private Environment environment;
// @Bean
// public static PropertySourcesPlaceholderConfigurer propertyConfigure() {
// return new PropertySourcesPlaceholderConfigurer();
// }
@Override
public String toString() {
try {
return "ELConfig [normal=" + normal
+ ", osName=" + osName
+ ", randomNumber=" + randomNumber
+ ", fromAnother=" + fromAnother
+ ", testFile=" + IOUtils.toString(testFile.getInputStream())
+ ", testUrl=" + IOUtils.toString(testUrl.getInputStream())
+ ", bookName=" + bookName
+ ", environment=" + environment.getProperty("book.name") + "]";
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
测试类:
public class SpringELTest {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ELConfig.class);
@Test
public void contextTest() {
ELConfig elConfig = context.getBean(ELConfig.class);
System.out.println(elConfig.toString());
}
@After
public void closeContext() {
context.close();
}
}
补充知识:yml、properties获取pom自定义变量
pom变量:
yml获取pom变量:
添加依赖:
获取变量:
url: @jdbc-url@
lcn-log-url: @jdbc-url@
username: @jdbc-user@
password: @jdbc-password@
properties获取pom变量:
build设置:
http://
获取变量:
spring.datasource.url=${jdbc-url}
spring.datasource.username=${jdbc-user}
spring.datasource.password=${jdbc-password}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~