- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
spring依赖注入的方式总结
spring依赖注入的三种方式:
在讲解依赖注入的3种实现方式之前,这里先说一下依赖注入的概念:让组件依赖于抽象,当组件要与其他实际对象发生依赖关系时,通过抽象来注入依赖的实际对象。
依赖注入的3种实现方式分别是:接口注入(interface injection),set注入(setter injection)和构造注入(constructor injection)。
------------------------------------------------------------------------------------
接口注入指的就是在接口中定义要注入的信息,并通过接口完成注入。
具体步骤:(1),编写一个接口,各种数据库的注入将通过这个接口进行。(2),任何想要使用数据库实例的类
都必须实现这个接口;
set注入指的就是在接受注入的类中定义一个set方法,并在参数中定义需要注入的元素。
构造注入指的是在接受注入的类中定义一个构造方法,并在参数中定义需要注入的元素。
构造函数是没有返回值的哦!
构造函数式没有返回值的哦!
spring四种依赖注入方式
博客分类:?
spring
?
?
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做。
spring有多种依赖注入的形式,下面仅介绍spring通过xml进行IOC配置的方式:
Set注入
这是最简单的注入方式,假设有一个SpringAction类需要实例化一个SpringDao对象,那么就可以定义一个private的SpringDao成员变量,然后创建SpringDao的set方法(这是ioc的注入入口):
Java代码??
package?com.bless.springdemo.action;??
public?class?SpringAction?{??
????????//注入对象springDao??
????private?SpringDao?springDao;??
????????//一定要写被注入对象的set方法??
????????public?void?setSpringDao(SpringDao?springDao)?{??
????????this.springDao?=?springDao;??
????}??
??
????????public?void?ok(){??
????????springDao.ok();??
????}??
}??
随后编写spring的xml文件,bean中的name属性是class属性的一个别名,class属性指类的全名,因为在SpringAction中有一个公共属性Springdao,所以要在bean标签中创建一个property标签指定SpringDao。property标签中的name就是SpringAction类中的SpringDao属性名,ref指下面bean name=springDao...,这样其实是spring将SpringDaoImpl对象实例化并且调用SpringAction的setSpringDao方法将SpringDao注入:
Java代码??
!--配置bean,配置后该类由spring管理--??
????bean?name=springAction?class=com.bless.springdemo.action.SpringAction??
????????!--(1)依赖注入,配置当前类中相应的属性--??
????????property?name=springDao?ref=springDao/property??
????/bean??
bean?name=springDao?class=com.bless.springdemo.dao.impl.SpringDaoImpl/bean??
??
构造器注入
这种方式的注入是指带有参数的构造函数注入,看下面的例子,我创建了两个成员变量SpringDao和User,但是并未设置对象的set方法,所以就不能支持第一种注入方式,这里的注入方式是在SpringAction的构造函数中注入,也就是说在创建SpringAction对象时要将SpringDao和User两个参数值传进来:
文档评论(0)