IoC入门
什么是IoC
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI,下一节将入门DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
一个简单的IoC编程示例
1.导入jar包 ,使用MyEclipse进行IoC编程之前,需要先导入需要的jar包:4+1
4核心:core | beans | context | expression
1依赖:commons-loggins…jar
新建一个project,将在网上下载的4+1文件导入到该project的lib里:
2. 目标类
(1)新建UserService接口及其实现类
UserService接口:
public interface UserService {
public void addUser(); //写一个接口,再创建个类来实现这个接口
}
实现类UserServiceImpl:
public class UserServiceImpl implements UserService { //实现userService接口
public void addUser(){
System.out.println("a_ioc add user");
}
}
(2)获得UserService实现类的实例(之前开发中,程序员直接new一个对象即可)
学习spring之后,不再需要程序员亲自创建对象,将由Spring创建对象实例–> IoC 控制反转(Inverse of Control)之后需要实例对象时,从spring工厂(容器)中获得,需要将实现类的全限定名称配置到xml文件中
3.配置文件
在与上述文件的同一包下新建个beans.xml文件。
主要就是将实现类的全限定名称(包括id 和 class)配置到xml文件中
<?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.lovejava.a_ioc.UserServiceImpl"></bean>
</beans>
4.测试
同一个包下新建测试类 TestIoC.java
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestIoC {
@Test
// public void demo01(){
// //之前开发程序员用new创建对象
// UserService user=new UserServiceImpl(); //接口new一个接口的实现类对象
// user.addUser();
// }
public void demo02(){
//学习Spring之后,Spring容器创建对象实例
//1.获得容器
String xmlPath="com/lovejava/a_ioc/beans.xml";
ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlPath);
//2.获得内容----不需要自己new,都是从Spring容器中获得
UserService user=(UserService)applicationContext.getBean("userServiceId"); //直接从容器中通过Id获得对象实例(但是要进行强制类型转换
user.addUser();
}
}
运行结果:
输出:a_ioc add user
至此,一个简单的入门级IoC编程就OK了。
初学阶段,关于Spring框架的编程,基本都是对文件的配置,即在beans.xml文件中完成,配置过程可能比较繁琐。再往下学会接触到注解,基于注解装配Bean将简单许多。