目前Java体系常见的IOC框架有Google Guice,PicoContainer,Dagger,Spring Framework,本篇来进行讲解Spring Framework的IOC(Spring IOC) 本篇示例代码下载html
IOC的意思就是控制反转(Inversion of Control),将原POJO内部管理其余对象的引用转换为IOC容器统一管理对象引用,在须要使用的时候从容器获取Bean便可。java
首先咱们能够看到Spring4的庞大模块中(这里咱们不针对Spring模块逐一介绍,将会在第四章:Spring专栏进行特别介绍),IOC功能位于Spring核心容器(Core Container模块)中,也是Spring生态圈的全部模块中的核心支撑。git
Spring的XML配置文件以下,这里使用XML配置文件的形式配置SpringBean(对于理解比较友好) 示例代码下载github
<?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-4.0.xsd"> <bean class="com.leanspringioc.AdminUser" id="adminUser"/> <bean class="com.leanspringioc.VipUser" id="vipUser"/> <bean class="com.leanspringioc.TestIOC" id="testIOC"> <property name="iUser" ref="vipUser"/> </bean> </beans>
/** * 在applicationContext.xml文件中向testIOCBean中注入vipUser和adminUser进行测试 * * @param args */ public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); TestIOC testIOC = (TestIOC) context.getBean("testIOC"); testIOC.say(); }
自动扫描装配Bean的相关注解spring
自动装配Bean相关注解编程