栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring中IoC/DI实现注入

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring中IoC/DI实现注入

 链接:https://pan.baidu.com/s/1QvDJ-eVTk0uTuzDlojtn7A?pwd=ecfv
提取码:ecfv

先导入项目,成功运行,再学习!

1.创建一个动态web项目,并且把四个基础包和一个拓展包复制到lib目录下。

 2.在src目录下创建ioc_di包,创建接口UserDao,在接口中定义一个login()方法。

package ioc_di;

public interface UserDao {
public void login();
}

3.在ioc_di包下创建类UserDaoImpl实现UserDao中的login()方法,并输出语句。

package ioc_di;

public class UserDaoImpl implements UserDao{

	@Override
	public void login() {
		// TODO Auto-generated method stub
		System.out.println("登陆成功!!!");
	}

}

4.在src目录下创建Spring的配置文件applicationContext.xml。并在配置文件中创建一个id为userDao的Bean。



   

   

5.在ioc_di包下创建测试类IoC,并在类中编写main()方法及实现IoC的代码

package ioc_di;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class IoC {
public static void main(String[] args) {
	//1.初始化Spring容器,加载配置文件
	ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
	//2.通过容器获取userDao实例
	UserDao userDao= (UserDao) applicationContext.getBean("userDao");
	//3.调用示例中的login()方法
	userDao.login();
}
}

 该程序执行后可以看到

 从中可以看出,控制台成功输出了 UserDaolmpl类中的输出语句。在main()方法中,并没有通过 new 关键字来创建 UserDao 接口的买现类对象,而是通过 Spring 容器来获取的实现对象,这就是 Spring IoC(控制反转)的工作机制。

6.在ioc_di包中创建接口UserService,并编写DoTest()方法

package ioc_di;

public interface UserService {
public void DoTest() ;

}

7.在ioc_di包下创建类UserSerServiceImpl实现UserService接口,在类中声明userDao属性,并添加属性的setter()方法,同时编写DoTest()方法。

package ioc_di;

public class UserServiceImpl implements UserService{
private UserDao userDao;
public void setUserDao(UserDao userDao) {
	this.userDao=userDao;
}
	@Override
	public void DoTest() {
		// TODO Auto-generated method stub
		this.userDao.login();
		System.out.println("测试成功!!!");
	}

}

8.在配置文件中创建id为userService的Bean,该Bean用于实例化UserServiceImpl类的信息,并将name为userDao的实例注入userService中。



   

   
   
   
   

 在上述代码中,是元素的子元素,用于调用 Bean 实例中的 setUserDao()方法完成属性赋值,从而实现依赖注入。其name 属性表示 Bean 实例中的相应属性名,ref 属性用于定其属性值。

9.在ioc_di包中创建测试类DI

package ioc_di;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DI {
public static void main(String[] args) {
	//1.初始化Spring容器,加载配置文件
	ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
	//2.通过容器获取userService实例
	UserService userService=(UserService) applicationContext.getBean("userService");
	//3.通过实例调用DoTest()方法
	userService.DoTest();

}
}

 从中可以看出,使用 Spring 容器通过 UserService 实现类中的 DoTest()方法调了 UserDao 实现类中的 login()方法,实现类中的 DoTest()方法,并输出了结果。这就是 Spring 容器属性 setter 注入的方式,也是实际开发中常用的一种方式。
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1010405.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号