Spring 依赖注入(DI)

在实际环境中实现 IOC 容器的方式主要分为两大类,一类是依赖查找,依赖查找是通过资源定位,把对应的资源查找回来;另一类是依赖注入,Spring 主要使用的是依赖注入。一般,依赖注入可以分为三种方式:

  1. 构造器注入
  2. setter 注入
  3. 接口注入

构造器注入和 setter 注入是主要的方式,而接口注入是从别的地方注入的方式,例如web工程中配置的数据源是通过服务器配置的,可以通过 JNDI 的形式通过接口将它注入 Spring IOC 容器中。

构造器注入

构造器注入依赖于构造方法实现,构造方法可以是有参数的或者是无参数的。大部分情况下我们是通过类的构造方法创建类对象,Spring 可以采用反射的方式,通过使用构造方法来完成注入,这就是构造器注入的原理。

构造器注入代码:

public class User{
	private int id;
	private String name;
	private String note;
	...............................
	public User(String name,String note){
		this.name = name;
		this.note = note;
	}
}
<bean id="user" class="com.ssm.entity.User">
	<constructor-arg index="0" value="总经理"/>
	<constructor-arg index="1" value="管理者"/>
</bean>

constructor-arg 元素用于定义类构造方法的参数,其中 index 用于定义参数的位置,value 是设置值。

构造器注入比较简单,但是缺点也很明显,参数少时可读性比较好,当参数量较多时,构造器注入就比较复杂,代码维护难。

setter 注入

setter 注入时 Spring 中最主流的注入方式,它利用 Java Bean 规范定义的 setter 方法完成注入,灵活并且代码可读性高,它消除了使用构造器注入时参数过多的麻烦,通过 setter 注入为其设置的值,其实也是通过 Java 的反射技术实现的。

<bean id="user" class="com.ssm.entity.User">
	<property name="name" value="工程师"/>
	<property name="note" value="重要人员"/>
</bean>

Spring 会通过反射调用没有参数的构造方法生成对象,同时通过反射对应的 setter 方法注入配置的值,这种方式是 Spring 最为主要的方式,应用十分广泛。

接口注入

有些时候资源是来自外界,比如数据库连接资源完全可以在 Tomcat 下配置,通过 JNDI 的形式去获取它,这样数据库链接资源是属于开发工程外的资源,这时就可以使用接口注入的形式获取它。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值