原创

Spring IOC简单实例

温馨提示:
本文最后更新于 2022年08月27日,已超过 579 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

IOC—Inversion of Control,即“控制反转”是一种设计思想。在Java开发中,IOC意味着将设计好的对象交给容器控制,而不是传统的在对象内部直接控制。传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象。而IOC是有专门一个容器来创建这些对象,即由IOC容器来控制对 象的创建。


下面本文就简单做一个实例:

1.首先创建一个java项目,将spring相关的jar引入

2.创建IOCService接口,两个方法

package cn.richwit.ioc;
/**   
* @version 1.0  
*/
public interface IOCService {
	public String speak();
	public String ceAdd(int a,int b);//加法
}

3.实现IOCService接口,创建IOCServiceImpl实现类

package cn.richwit.ioc;
/**   
* @version 1.0  
*/
public class IOCServiceImpl implements IOCService{
	@Override
	public String speak() {
		System.out.println("test ioc...");
		return "test ioc!";
	}
	@Override
	public String ceAdd(int a, int b) {
		return String.valueOf(a+b);
	}
}

4.创建配置iocxml配置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"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans        
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context                
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
    <!-- id 表示组件的名字,class表示组件类 -->
    <bean id="iOCService" class="cn.richwit.ioc.IOCServiceImpl" />
    
</beans>

5.测试IOCTest

package cn.richwit.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**   
 * ioc可以松耦合,与直接实例化区别是:直接new实例化无法统一管理并且增加了耦合,
 * 如果该bean需要多次重复使用,交给spring ioc管理,后期维护只需要修改xml配置
* @version 1.0  
*/
public class IOCTest {

	public static void main(String[] args) {
		iocT();
	}
	public static void iocT() {
		// 1、读取配置文件实例化一个IOC容器
		ApplicationContext app = new ClassPathXmlApplicationContext("iocxml.xml");
		// 2、从容器中获取Bean,注意此处完全“面向接口编程,而不是面向实现”
		IOCService iocService = app.getBean("iOCService", IOCService.class);
		// 3、执行业务逻辑
		String result = iocService.speak();
		System.out.println(result);
		int a = 5;
		int b = 3;
		System.out.println("a+b="+iocService.ceAdd(a, b));
	}
}
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录