时间:2021-05-20
一 前言
本篇内容包括spring 运行时读取配置文件的多种方式和SpEl表达式入门基础;
二运行时读取配置文件
spring 运行时读取配置文件值提供了2种方式
属性占位符(Property placeholder)。
Spring表达式语言(SpEL)
2.1 读取外部配置文件
使用 @PropertySource 注解可以读取导classpath下配置文件属性;参数如下
首先resource 目录下创建配置文件zszxz.properties ; 内容如下
zszxz.name = zszxz
zszxz.point = share
其次读取配置文件配置类如下
@Configuration@PropertySource(value = {"classpath:zszxz.properties"},encoding = "UTF-8")@Componentpublic class EnvironmentProperty { // 注入环境 @Autowired private Environment environment; public void outputProperty(){ System.out.println(environment.getProperty("zszxz.name")); }}最后通过测试类调用outputProperty()输出配置文件中属性的值
@RunWith(SpringJUnit4ClassRunner.class)//创建spring应用上下文@ContextConfiguration(classes= EnvironmentProperty.class)//加载配置类public class PropertyTest { @Autowired EnvironmentProperty environmentProperty; @Test public void test(){ // zszxz environmentProperty.outputProperty(); }}Tip 也可以使用@PropertySources 注解,其value是 @PropertySource类型的数组;
其中 EnvironmentProperty 获取主要属性方法如下
2.2 使用占位符获取配置文件
使用注解@Value获取配置文件属性值; 其中值使用占位符("${........}")方式;
配置类示例
@Configuration@PropertySource(value = {"classpath:zszxz.properties"},encoding = "UTF-8")@Componentpublic class EnvironmentProperty { @Value("${zszxz.point}") private String point; public void outputPoint(){ System.out.println(point); }}测试示例
@RunWith(SpringJUnit4ClassRunner.class)//创建spring应用上下文@ContextConfiguration(classes= EnvironmentProperty.class)//加载配置类public class PropertyTest { @Autowired EnvironmentProperty environmentProperty; @Test public void testPoint(){ // share environmentProperty.outputPoint(); }}2.3 SpEl表达式
Spring表达式语言(Spring Expression Language,SpEL)是一种灵活的表达式语言,能够以简洁的方式将值装配到bean属性或者构造器参数中,此过程中能够计算表达式获取计算值;使用@Valjue注解时,SpEL表达式要放到“#{......}”之中;
获取bean示例
@Value("#{environmentProperty}") private EnvironmentProperty getBean; @Test public void testBean(){ // com.zszxz.property.EnvironmentProperty$$EnhancerBySpringCGLIB$$8e54e11f@1d9b7cce System.out.println(getBean); }获取方法示例
@Value("#{environmentProperty.getStr()}") private String getMethod; @Test public void testMethod(){ // 知识追寻者 System.out.println(getMethod); }获取属性示例
注意点:username字段必须是public
@Value("#{environmentProperty.username}") private String getField; @Test public void testField(){ // 知识追寻者 System.out.println(getField); }获取静态方法示例
其中T()表示运算会得到一个Class对象;
@Value("#{T(java.lang.Math).random()}") private double number; @Test public void testStatic() { // 0.9205474938572363 System.out.println(number); }非空判定示例
其中? 表示非空判定
@Value("#{environmentProperty.username?.toString()}") private String notNull; @Test public void testNotNUll() { // 知识追寻者 System.out.println(notNull); }支持运算符如下
更多内容读者自行参考官网学习
https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/expressions.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.spring配置文件复制代码代码如下:2.读取属性方法复制代码代码如下:ApplicationContextc=newClassPathXmlApplica
本文实例为大家分享了Spring加载加密的配置文件,供大家参考,具体内容如下一、继承并实现自己的属性文件配置器类/***带加密的Spring属性配置文件扩展类*
本文将介绍两种Spring读取property配置文件的方法,接下来看看具体内容。一、通过Spring工厂读取示例:publicclassPropertyCon
Spring开发过程中使用Value注解对属性进行赋值;常见的场景有三种。直接对属性进行赋值;包括普通字符串、操作系统属性、文件内容等。从配置文件中读取简单类型
首先回忆一下在没有使用SpringBoot之前也就是传统的spring项目中是如何读取配置文件,通过I/O流读取指定路径的配置文件,然后再去获取指定的配置信息。