(三)构造方法注入

Spring中只有两大核心技术:IOC&DI(控制反转&依赖注入),AOP(面向切面编程)

什么是依赖注入?

利用配置文件的关系来决定类之间的引用关系以及数据的设置操作.

1.构造方法注入

        默认情况下如果在applicationContext.xml文件之中配置的程序都可以自动的找到Spring容器加载时进行对象的实例化操作.但是自动进行初始化的时候调用1是类中的无惨构造方法,而且通过反射机制应该知道.如果类中提供有无惨构造方法一定要比有参构造方法的实例化更加容易.

    但是在Spring里面简化了反射的处理机制,也就是说利用Spring中的动态的特性可以直接明确调用构造方法传递参数.

    范例:定义一个类

package cn.zwb.vo;

public class Dept {
	private Integer deptno;
	private String dname;
	public Dept(Integer deptno,String dname){
		this.deptno=deptno;
		this.dname=dname;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "部门编号:"
				+ this.deptno
				+ ",名称"
				+this.dname;
	}
}

        此时类中没有提供有无惨构造方法,所以配置在applicationContext.xml文件中的"<bean>"不能够正常使用,此时必须 明确调用类中的有参构造方法.

范例:application.xml配置

<bean id="dept" class="cn.zwb.vo.Dept">
	<constructor-arg value="10"/>
	<constructor-arg value="开发部"/>
</bean>

        但是在Spring的配置里面它所支持的好处远远不止这一点.如果用户有需要也可以根据参数的索引来进行设置,

范例:修改索引操作

<bean id="dept" class="cn.zwb.vo.Dept">
	<constructor-arg index="0" value="10"/>
	<constructor-arg index="1" value="开发部"/>
	</bean>

        虽然Spring在构造方法上考虑的还是挺多的,但是从本质上并不推荐.

范例:修改Dept.java类设置参数名称

@ConstructorProperties(value={"paramDeptno","paramDname"})
	public Dept(Integer deptno,String dname){
		this.deptno=deptno;
		this.dname=dname;
	}

  也就是说在设置的时候可以使用paramDeptno来代替索引0.使用paramDname来代替索引1.

范例:利用参数名称进行设置

<bean id="dept" class="cn.zwb.vo.Dept">
	<constructor-arg name="paramDeptno" value="10"/>
	<constructor-arg name="paramDname" value="开发部"/>
	</bean>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值