spring el表达式解析_面试基础问题:Spring属性注入的几种方式

在框架学习中,Spring框架是我们学习内容的重要部分。关于Spring的知识点,在面试当中也经常被问到,其一些基本知识和源码相关问题。下面我们将全面的解答Spring框架中属性的集中注入方式:

首先我们创建两个实体类,User类和Car类,我们使用这两个实体,其属性如下

ab2051e93f5c9b7ba0b6d2091fdbef6d.png
9c49cf4c767ca2080034d5ffe5f59667.png

构造方法注入

在User对象中,我们重载了如下构造方法:

4d7cc273fa0a76dc7b48ffea7a71c5e5.png

在配置文件ApplicationContext.xml文件中做如下配置:

5219ac06ee0610c567c48dcb7963202b.png

其中:index为属性在指定构造函数中参数列表的索引;type为属性的类型,这两个属性无论类中含有多少个构造方法都能锁定到唯一的构造函数上进行属性值注入。

junit测试方法:

6bc1b3088c37cb523723d25c5eb5c4e8.png

测试结果:

bd48693bab9eb6d0ee4d82cd6d352e1f.png

set方法注入

set方法注入属性值需要在user和car类中生成set和get方法。

配置文件书写:

f72dc23d3cd234fba5ea6cff0eedf892.png

junit测试类方法:

6e2d6c910634bc9d6eac8757593766c8.png

测试结果:

d9d90fbe18bfd550833b0ca1a2a6f0e0.png

p方法注入

p方法注入是一个使用比较少的方式,很少使用,只需要知道有这个方式即可,在使用p方式注入属性的值时,需要增加p约束

ae6b7a889866032322692974d63bff48.png

配置文件书写方式:

b41c03db7ebf24d9859a3313c6ec7c43.png

junit测试类方法:

a7f595d8b38193e76f111c17263dd0c5.png

测试结果:

f02e42364c62133b6001ed212839ceb6.png

SPEL注入 Spring Expression Language Spring 表达式语言注入

spel注入方式类似于EL表达式取值,value中的值使用#{}的形式获取,可以取任意对象的值。

配置文件书写如下:

e93680a1bcc6d0e1f9b1f17687c210e2.png

junit测试类方法:

21af138613d6e8351c87789e32e0ae06.png

测试结果:

ad09136e2bdb2b385360640818ae5f0f.png

复杂类型注入

复杂类型注入例如数组array、list和set集合、map集合、properties键值对形式的值注入。为了更好地展示,我们新建一个CollectionBean类,定义以上私有成员变量,并生成get和set方法:

05ed88d78d25709805ab5bc644afb0c1.png
  1. array数组类型注入:
9febfe2f763b44e2d35c8990a40b1052.png

2.list集合注入(和set注入相同):

cba2624f6783987a3e388f23227b6f2c.png

3.map集合注入

4f7ec6a2dba9596048d04329f575bd28.png

4.properties类型注入:

4fe1ae335ad4536477bb875edacbb18a.png

junit测试类方法:

30250e27b17b15e304b7cd8dbd64c334.png

测试结果:

38a91d5bc298566c2c71e348224d0631.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值