Spring 环境配置 控制反转(IoC) 依赖注入(Di)

Spring 环境配置:

简单来说就是 :四个jar包 + 一个依赖包 + ApplicationContext.xml

jar 包都在spring源码里面,位置看一下图

四个jar包在spring源码下的路径为:spring-framework-3.2.0.RELEASE-dist.zip\spring-framework-3.2.0.RELEASE\libs\


另一个依赖包的在spring源码路径在:spring-framework-3.0.2.RELEASE-dependencies.zip\org.apache.commons\com.springsource.org.apache.commons.logging\1.1.1\


然后在Myeclipse下创建一个JavaWEB 项目

第一步导包


创建一个ApplicationContext.xml的文件,文件名随意都行,存放路径同样可以随意,只要能找到就是,但一般都放在对应的bean的目录下或者在src目录下


内容在下面练习中给出

现在来实现一个简单的控制反转的案例

控制反转:意思就是把创建对象的控制权交由Spring管理,不再由对象自己创建,简单说就是在代码中不使用new 来创建对象,而是从Sping容器中获取

先写一个service类

public class UserService {
	private BookDao bookDao ;
	public void addUser()
	{
		System.out.println("添加用户");
	}	
	public void addBook() {
		bookDao.saveBook();
		
	}
	
然后在Application中配置bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
       					   http://www.springframework.org/schema/beans/spring-beans.xsd">
	<!-- 配置service 
		<bean> 配置需要创建的对象
			id :用于之后从spring容器获得实例时使用的
			class :需要创建实例的全限定类名
	-->
        <!-- 在这里配置需要实例的对象-->
 <bean id="userServiceId" class="com.slxy.service.UserService"></bean>
</beans>

在没有使用spring之前我们要使用这个类时候是这样的

               // 创建一个对象
		UserService us = new UserServiceImol();
		// 调用对象的方法
		us.addUser();
现在是这样使用
		// 现获得上下文对象 ,传入的path路径就是你的ApplicationContext.xml的路径
		ApplicationContext context = new ClassPathXmlApplicationContext("IoCApplicationContext.xml");
		// 通过上下文对象的getBean方法获得实例
		UserService us= context.getBean("userServiceId",UserService.class);
		// 调用实例方法
		us.addUser();

这样就实现了控制的反转

接下来实现依赖注入

依赖注入:就是一个类中含有另一个类的对象的引用

例如

UserService类必须实现dao类setter方法

public class UserService {
	private BookDao bookDao ;
	
	/**
	 * 设置setter方法,实现依赖注入
	 * @param bookDao
	 */
	public void setBookDao(BookDao bookDao) {
		this.bookDao = bookDao;
	}
	

如何通过ApplicationContext配置文件实现这个依赖呢


使用方法和上面控制反转一致,现在可以看到使用了Spring框架以后,一般不用new 关键字来创建对象,都是有spring来创建对象,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

memory_cood

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值