跟我学Spring3 学习笔记三

本文详细介绍了Spring框架中构造器注入的三种方式:参数索引注入、参数类型注入及参数名称注入,并展示了如何通过不同方式配置Bean实现依赖注入。

     构造器注入法:

/**
 * 构造器注入可以根据参数索引注入、参数类型注入或Spring3支持的参数名注入,
 * 但参数名注入是有限制的,需要使用在编译程序时打开调试模式
 * (即在编译时使用“javac –g:vars”在class文件中生成变量调试信息,默认是不包含变量调试信息的,
 * 从而能获取参数名字,否则获取不到参数名字)
 * 或在构造器上使用@ConstructorProperties(java.beans.ConstructorProperties)注解来指定参数名。
 */
public class HelloImplConstr implements HelloApi {

	private String message;
	private int index;
	@ConstructorProperties({"message","index"})
	public HelloImplConstr(String message,int index){
		this.message = message;
		this.index = index;
	}
	public void sayHello() {
		System.out.println(this.index+":"+this.message);

	}
}

 

<!-- 通过构造器参数索引方式依赖注入 -->
<bean id="byIndex" class="com.constructor.HelloImplConstr">
    <constructor-arg index="0" value="Hello Spring by index"></constructor-arg>
    <constructor-arg index="1" value="1"></constructor-arg>
</bean>
<!-- 通过构造器参数类型方式依赖注入 -->  
<bean id="byType" class="com.constructor.HelloImplConstr">
   <constructor-arg type="java.lang.String" value="Hello Spring by type"></constructor-arg>
   <constructor-arg type="int" value="2"></constructor-arg>
</bean>
<!-- 通过构造器参数名称方式依赖注入 -->  
<bean id="byName" class="com.constructor.HelloImplConstr">
     <constructor-arg name="message" value="Hello Spring by name"></constructor-arg>
     <constructor-arg name="index" value="3"></constructor-arg>
</bean>
<!-- 静态工厂方法注入和实例工厂注入 参数注入一样 静态工厂方式和实例工厂方式根据参数名字注入的方式
只支持通过在class文件中添加“变量调试信息”方式才能运行,ConstructorProperties注解方式不能工作-->

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值