欢迎使用CSDN-markdown编辑器

初探spring四种依赖注入之一set注入

Spring将各层的对象以松耦合的方式组织在一起,Action对象无须关心Service对象的具体实现,Service对 象无须关心持久层对象的具体实现,各层对象的调用完全面向接口。
当系统需要重构时,代码的改写量将大大减少。上面所说的一切都得宜于Spring的核心机制,依赖注入。依赖注入让bean与bean之间以配置文件组织在一起,而不是以硬编码的方式耦合在一起。

网上查很多资料介绍四种IOC,不论哪一种IOC实质无非就是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做。

现在我就把我接触最早的set注入总结了一下。

  • Set注入

随便在网上找了一短代码作为用例

    package com.csdn.action;  
    public class ResAction {  
            //注入对象resDao  
        private ResDao resDao;  
            //一定要写被注入对象的set方法  
            public void setResDao(ResDao resDao) {  
            this.resDao = resDao;  
        }  

            public void ok(){  
            resDao.ok();  
        }  
    }  

类中需要实例化一个ResDao对象,那么就可以定义一个private的SpringDao成员变量,然后创建ResDao的set方法(这是ioc的注入入口)。

    <!--配置bean,配置后该类由res管理-->  
        <bean name="ResAction" class="package com.csdn.action; ">  
            <!--(1)依赖注入,配置当前类中相应的属性-->  
            <property name="resDao" ref="resDao"></property>  
        </bean>  
    <bean name="resDao" 
    <bean name="ResAction" class="package com.csdn.action; ">  

随后编写res的xml文件,中的name属性是class属性的一个别名,class属性指类的全名,因为在ResAction中有一个公共属性Resdao,所以要在标签中创建一个标签指定ResDao。标签中的name就是ResAction类中的SpringDao属性名,ref指下面,这样其实是res将ResDaoImpl对象实例化并且调用ResAction的setResDao方法将ResDao注入

set注入是最简单的一种注入方式,也是使用的比较多的一种方式。

另外注意:通过Res创建的对象默认是单例的,如果需要创建多实例对象可以在标签后面添加一个属性:

xml代码

    <bean name="..." class="..." scope="prototype">  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值