spring-IOC中的DI

本文深入解析Spring框架中依赖注入的多种方式,包括基于set的注入、构造方法注入、自动装配等,通过具体代码示例展示如何配置和使用依赖注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DI( Dependency Injection)

基于set的注入

  • spring内置类型直接注入
<bean id="person" class="com.domain.Person">
	<property name="name" value="uzi"></property>
	<property name="age" value="19"></property>
	<property name="list">
		<list>
			<value>a</value>
			<value>aa</value>
		</list>
	</property>
	<property name="set">
		<set>
			<value>a</value>
			<value>b</value>
		</set>
	</property>
	<property name="map">
		<map>
			<entry key="aa" value="ee"></entry>
		</map>
	</property>
	<property name="prop">
		<props>
			<prop key="a">b</prop>
		</props>
	</property>
</bean>
  • 注入自定义对象
<bean id="hero" class="com.domain.Hero">
	<property name="dog" ref="dog"></property>
</bean>
<bean id="dog" class="com.domain.Dog"></bean>
  • 利用构造方法注入
<!--index:为构造方法的第几个参数 进行配置
**index 和 name 可以配置任何一个或同时配置 但要求一旦配置必须正确
**推荐优先使用index方式配置 防止没有源码造成name无法匹配到对应参数
name:为构造方法的哪个名字的参数进行配置
type:该构造方法参数的类型
value:该构造方法参数的值 ,用来指定基本值
ref:该构造方法参数的值,用来指定引用其他bean的值
-->
<bean id="person" class="com.domain.Person">
	<constructor-arg index="0" value="徐悦"></constructor-arg>
	<constructor-arg index="1" value="24"></constructor-arg>
</bean>
  • 自动装配

    对于set注入,可以开启自动装配,利用ID或者类型自动寻找,一般用于自定义对象set注入,还是必须要有无参构造

 <bean id="hero" class="com.domain.Hero" autowire="byName"></bean>

也可以整个容器的自动装配

default-autowire="byName"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值