admin 管理员组文章数量: 1086019
2024年3月28日发(作者:nginx代理多个地址)
依赖注入的作用就在使用Spring框架创建对象时,动态的将其所依赖的对象注入
到Bean组件中,其实现通常有两种,一种属性setter方法注入,另一种构造方法
注入。具体介绍如下:
●属性setter方法注入:指IoC容器使用setter方法来注入被依赖的实例。通过
调用无参构造器或无参静态工厂方法实例化Bean后,调用该Bean的setter方法,
即可实现基于setter方法的依赖注入。
●构造方法注入:指IoC容器使用构造方法来注入被依赖的实例。基于构造方法的
依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。
了解了两种注入后,以属性setter方法注入的为例,讲解一下Spring容器在应用
中如何实现依赖注入的。
(1)在.包中,创建接口UserService,在接口中编写一个say()方法,
如文件1所示。
文件
;
publicinterfaceUserService{
publicvoidsay();
}
(2)在.包中,创建UserService接口的实现类UserServiceImpl,在类
中声明userDao属性,并属性的setter方法,如文件2所示。
文件
;
publicclassUserServiceImplimplementsUserService{
//声明UserDao属性
privateUserDaouserDao;
//UserDao属性的setter方法,用于实现依赖注入
publicvoidsetUserDao(UserDaouserDao){
o=userDao;
}
//实现的接口中方法
publicvoidsay(){
1
//调用userDao中的say()方法,并执行输出语句
();
n("userServicesayhelloWorld!");
}
}
(3)在配置文件中,创建一个id为userService的Bean,
该Bean用于实例化UserServiceImpl类的信息,并将userDao的实例注入到
userService中,其代码如下所示。
在上述代码中,
setUserDao()方法完成属性赋值,从而实现依赖注入。其name属性表示Bean实
例中的相应属性名,ref属性用于指定其属性值。
(4)在.包中,创建测试类TestDI,来对程序进行测试,编辑后如文件
2所示。
文件
;
ationContext;
import
athXmlApplicationContext;
publicclassTestDI{
publicstaticvoidmain(String[]args){
//1.初始化spring容器,加载配置文件
ApplicationContextapplicationContext=
newClassPathXmlApplicationContext("");
//2.通过容器获取UserService实例
UserServiceuserService=
2
(UserService)n("userService");
//3.调用实例中的say()方法
();
}
}
(5)执行程序后,控制台的输出结果如图1所示。
图1运行结果
从图1可以看出,使用Spring容器通过UserService实现类中的say()方法,调用
了UserDao实现类中的say()方法,并输出了结果。这就Spring容器属性setter
注入的,也实际发中最为常用的一种。
3
版权声明:本文标题:依赖注入怎样实现?有几种方式? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711594460a601504.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论