博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 的属性注入
阅读量:4685 次
发布时间:2019-06-09

本文共 1888 字,大约阅读时间需要 6 分钟。

Spring 的属性注入

Spring 的属性注入,我们可以理解成之前说过的 DI (依赖注入)。

注入方式

对于类成员变量,注入方式有三种:

  • 构造函数注入
  • 属性 setter 注入
  • 接口注入

spring 支持前两种注入方式


1. 构造方法注入

  • 通过构造方法注入 Bean 的属性值或依赖的对象,它保证了 Bean 实例在实例化后就可以使用
  • 构造器注入在 ``` 元素里声明的属性

举个例子:


2. set 方法注入

  • 使用 set 方法注入,在 Spring 配置文件中,通过 设置注入的属性

举个例子:

其中:

ref 用来引入其他 bean 的 id 或 name

普通类型的值使用 value

对象类型的值使用 ref


3. p 名称空间注入

  • 使用 p 命名空间
  • 为了简化 XML 文件配置,Spring 从 2.5 开始引入一个新的 p 名称空间
  • p:<属性名>="xxx" 引入常量值
  • p:<属性名>-ref="xxx" 引入其他 Bean 对象

举个例子:

注意:

如果使用 p 名称空间注入,我们需要在 xml 文件开头的加入一句:

xmlns:p="http://www.springframework.org/schema/p"

表示引入 p 名称空间注入方式。


4. SpEL 注入

  • SpEL:spring expression language,spring 表达式语言,对依赖注入进行简化
  • 语法:#{表达式}
  • <bean id="" value="#{表达式}">

SpEL 表达式语言:

语法:#{}#{'hello'}:使用字符串#{topicId3}:使用另一个 bean#{topicId4.content.toUpperCase()}:使用指定名属性,并使用方法#{T(java.lang.Math).PI}:使用静态字符或方法

举个例子:


5. 复杂类型的属性注入

  • 数组类型的属性注入
  • List 集合类型的属性注入
  • Set 集合类型的属性注入
  • Map 集合类型的属性注入
  • Properties 类型的属性注入

举个例子:

aaa
bbb
ccc
111
222
333
ddd
eee
fff
root
1234

复杂类型的属性注入,主要是在 Spring 整合其他框架的时候,会比较常用到。

转载于:https://www.cnblogs.com/weixuqin/p/11042236.html

你可能感兴趣的文章
贪吃蛇easyx版本
查看>>
百度地图 JS API开发Demo01
查看>>
采用javascript实现WebGIS页面元素动态布局
查看>>
约瑟夫环问题
查看>>
Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming.pdf
查看>>
WPF 获取指定文件的Icon
查看>>
mysql实践(四)
查看>>
在linux服务器上配置anaconda和Tensorflow,并运行
查看>>
[POJ2823][洛谷P1886]滑动窗口 Sliding Window
查看>>
Flex 4.x 下载进度不出现问题解决办法
查看>>
Vue之自定义组件的v-model
查看>>
Vue项目碰到"‘webpack-dev-server’不是内部或外部命令,也不是可运行的程序或批处理文件"报错...
查看>>
解决Xcode在ipad/iphone 9.2 系统真机测试时出现could not find developer disk image问题
查看>>
基于asp.net的ajax分页
查看>>
分布式事务,两阶段提交协议,三阶段提交协议
查看>>
php/js获取客户端mac地址的实现代码
查看>>
float 在父元素为inline元素的情况
查看>>
git的基本使用
查看>>
MDK中编译程序后Program Size详解
查看>>
C++设计模式-Strategy策略模式
查看>>