我的位置: 首页 > 学习专区 > JAVA技术 >
就业喜报更多 >
热点专题更多 >
热门标签更多 >
[Java Web开发] spring构造注入和setter注入的区别
时间:2014-04-15 11:27:41   来源: 学术部
大家都在关注:东莞北大青鸟 东莞电脑培训
分享到:
[导读] 依赖注入是Spring Ioc实现Bean对象之间关联关系维护的方式,容器实现了两种对象注入。一种是通过构造方法完成对象的注入,另一种是通过setter方法来完成对象的注入。
依赖注入是Spring Ioc实现Bean对象之间关联关系维护的方式,容器实现了两种对象注入。一种是通过构造方法完成对象的注入,另一种是通过setter方法来完成对象的注入。

1、构造方法注入

//A类

public class A {[/align][align=left] private String a_name;[/align][align=left] setter和getter方法设置;[/align][align=left] public void display() {[/align][align=left] System.out.println("this is A's name:" + name);[/align][align=left] }[/align][align=left] }

复制代码

//B类,其中包括了A类的对象

public class B {[/align][align=left] private String b_name;[/align][align=left] private A a;[/align][align=left] setter和getter方法设置;[/align][align=left] public void display() {[/align][align=left] System.out.println("A's name:" + a.getA_name() + "this is B's name:"+ b_name);[/align][align=left] }[/align][align=left] }

复制代码

在spring的配置文件中进行如下设置

其中中的ref属性可写成

通过ref指定被注入的参数

中的value属性表示常数

2、使用setter方法注入

在使用setter方法注入时,类中一定要有setter方法,而利用构造函数注入时不一定要有。

两者区别只体现在配置文件中,我们对配置文件做如下修改

其中property中的name表示类中属性的名称,ref表示注入的参数

两者的比较:

使用构造方法时可以一次性注入参数,而且不能再进行重新注入。

而使用setter方法时依赖注入后还可以重新进行注入。

基于构造函数注入法还有一个缺点,就是在参数比较多时,构造函数会显得过于复杂和庞大。