spring-运行时值注入

2021-07-11 09:08

阅读:492

标签:静态属性   ace   方法   password   包含   安全   算术   prope   包装   

在项目中经常使用连接数据库的配置,如下所示

class="org.apache.commons.dbcp.BasicDataSource">
        

  每个属性都是硬编码,有时候我们希望避免硬编码,而是想让这些值在运行时候再确定。Spring提供了两种在运行时求值的方式:属性占位符和Spring表达式语言

1、属性占位符:使用${...}包装属性名称

a、引入properties文件

test.properties文件内容

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@db.dev.cc.cmbc.com.cn:1521:testDb
jdbc.username=testDbUser
jdbc.password=123456

b、避免硬编码的配置:

class="org.apache.commons.dbcp.BasicDataSource">
        

2、Spring表达式:使用#{...}包含SpEL表达式

a、使用bean的ID引用bean

  #{person1}

b、调用方法和访问对象的属性

  #{person1.age}  

  #{persion1.getName()}  对于bean方法的方法返回值,也可以调用方法 #{person1.getCar().getCarName()} ,如果person1.getCar()返回为null,则会抛出空指针异常,Spring提供了类型安全的运算符"?.", #{persion1.getCar()?.getCarName()} 如果person.getCar()不为空,则调用getCarName()获取返回值,否则,返回null

  #{T(java.lang.Math).PI}  在表达式中使用类型调用静态属性和方法,必须使用T()运算符

  #{T(java.lang.Math).random()}

c、对值进行算术、关系、逻辑运算

  #{2*T(java.lang.Math).PI*26}

  #{person1.getAge()==90}

 

  #{person1.getAge()>90?"年龄大于90":"年龄小于等于90"} 三元运算通常用于判null

  #{person.getName()+"DY"} 当“+”运算符的操作数有字符串时,执行的是连接操作

d、集合操作 略

spring-运行时值注入

标签:静态属性   ace   方法   password   包含   安全   算术   prope   包装   

原文地址:https://www.cnblogs.com/shixiemayi/p/9551388.html


评论


亲,登录后才可以留言!