`
在水伊方
  • 浏览: 111543 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Spring之IOC示例

阅读更多

IOC(Inversion of Control) ,所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。

 

如下面的程序:

public class PersonServiceBean {   
    private PersonDAO personDAO = new PersonDAOBean();   
  
    public void save() {   
        personDAO.add();   
    }   
} 

 PersonDaoBean 是在应用内部(即PersonServiceBean类)创建及维护的。

 

当我们把依赖对象交给外部容器负责创建,那么PersonServiceBean 类可以改成如下:  

package org.spring.service.impl;

import org.spring.dao.PersonDAO;
import org.spring.service.PersonService;

public class PersonServiceBean implements PersonService {   
    //实现接口编程,PersonServiceBean不负责依赖对象的创建及维护,   
       //依赖对象的创建及维护是由外部容器(这里指的是spring容器)负责的  
       private PersonDAO personDAO;     
       
    public PersonDAO getPersonDAO() {   
        return personDAO;   
    }   
  
    public void setPersonDAO(PersonDAO personDAO) {   
        this.personDAO = personDAO;   
    }   
  
    public void save() {   
        personDAO.add();   
    }   
} 

 

PersonService接口:

package org.spring.service;

public interface PersonService {
	public void save();
}

 

PersonDAO接口:

package org.spring.dao;

public interface PersonDAO {
	public void add();
}

 

PersonDAOBean实现类:

package org.spring.dao.impl;

import org.spring.dao.PersonDAO;

public class PersonDAOBean implements PersonDAO {
	public void add() {
		System.out.println("执行PersonDAOBean中的增加方法!");
	}
}

 

当然为了能让容器能管理我们的bean,我们还需要在spring中做如下配置:

<?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-2.5.xsd">

	<bean id="personDAOBean" class="org.spring.dao.impl.PersonDAOBean" />

	<bean id="personServiceBean" class="org.spring.service.impl.PersonServiceBean">
		<property name="personDAO" ref="personDAOBean" />
	</bean>

</beans>  

 

Spring容器在启动后,就会对配置文件中的所有bean进行初始化,并且把id为personDAO的bean注入到id为personServiceBean的bean中,这样personServiceBean就不用负责对personDAObean的创建及维护了,这项工作在容器初始化时就已经完成了,配置文件中的property中的name属性指的是id为personServiceBean的bean中有一个setPersonDAO方法。

 

测试类:

package org.spring;

import org.junit.Test;
import org.spring.service.PersonService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringTest {
	@Test
	public void test() {
		ApplicationContext ctx = new ClassPathXmlApplicationContext(
				"spring.xml");

		PersonService personService = (PersonService) ctx
				.getBean("personServiceBean");
		
		personService.save();

	}
}

 

控制台打印结果如下:

 

工程目录结构图:

 

  • 大小: 20.4 KB
  • 大小: 11.5 KB
  • 大小: 11.5 KB
1
1
分享到:
评论

相关推荐

    Spring4 IOC 示例源码

    Spring4 IOC(Inversion of Control,控制...通过这个Spring4 IOC示例源码的学习,不仅可以加深对Spring框架的理解,还能提升在实际项目中的应用能力。在实践中不断探索和掌握,将有助于成为一名更优秀的Java开发者。

    SpringIoc示例代码

    Spring IOC,全称Inversion of Control,即“控制反转”,是Spring框架的核心特性之一。在传统的Java应用程序中,对象的创建和管理通常由开发者自己控制。而在Spring IOC中,这种控制权被反转,对象的创建、初始化、...

    SpringIOC示例源代码

    在这个示例源代码中,我们可以看到多个Java类和一个bean.xml配置文件,这些都是实现Spring IOC的关键组成部分。 首先,让我们了解一下什么是控制反转(IOC)。在传统的程序设计中,对象通常自行创建其依赖项,但在...

    Spring的Aop和Ioc示例

    学习这个示例,你可以看到如何在实际项目中配置和使用Spring的IOC和AOP,进一步理解它们如何帮助简化代码并提高代码质量。对于初学者来说,这是一个很好的起点,可以帮助他们掌握Spring的核心特性,并应用于实际开发...

    Spring IoC简单示例-注解配置-Maven构建

    在本文中,我们将深入探讨Spring框架的核心特性——控制反转(Inversion of Control,简称IoC)和依赖注入(Dependency Injection,简称DI),以及如何通过注解配置和Maven项目构建来实现这一概念。Spring框架是Java...

    Spring的IoC实现案例

    在本文中,我们将深入探讨如何使用Spring的Inversion of Control(IoC)容器来实现一个具体的案例:控制打印机(Printer)类与不同类型的纸张(Paper)类的交互。Spring的IoC允许我们解耦组件,使代码更加灵活且易于...

    Spring源码分析_Spring_IOC

    在探讨Spring框架的核心组件之一——IOC(Inversion of Control,控制反转)容器之前,首先需要理解它在Spring框架中的角色与地位。对于Spring的使用者而言,IOC容器不仅是管理Bean(即应用中的对象实例)生命周期的...

    Spring IoC简单示例-XML配置-Maven构建

    Spring框架的核心特性之一是Inversion of Control(IoC),也被称为依赖注入(Dependency Injection)。IoC是一种设计模式,它将对象之间的依赖关系从代码中解耦出来,转交给一个外部容器(在Spring中就是...

    Spring IOC AOP学习示例

    Spring IOC AOP学习示例代码,包含Spring常用操作示例和所有所需jar文件。参考博客:http://blog.csdn.net/daijin888888/article/details/51735291

    Spring IOC AOP MVC 简单例子

    例如,`SpringIOC`目录中的配置文件(如`applicationContext.xml`)用于定义bean的定义和它们之间的依赖关系。通过XML或注解方式声明bean,Spring可以自动管理bean的实例化、初始化和销毁,从而简化了代码并提高了可...

    SpringIOC经典Demo

    例如,在`Spring-IOC示例.doc`中,可能包含如何配置Bean的详细示例。 3. **依赖注入**:这是Spring IOC的另一个关键概念。Spring通过构造函数注入、setter注入或属性注入来实现对象之间的依赖关系。这种方式使得...

    Spring 之IoC入门实例

    **Spring之IoC入门实例详解** 在Java世界中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)能力而广受赞誉。IoC是一种设计模式,它将对象的创建和...

    Spring IOC容器实现分析.pdf 下载

    在Java开发领域,Spring框架无疑是使用最为广泛的轻量级框架之一,其中的核心组件就是IOC(Inversion of Control)容器。本文将深入剖析Spring的IOC容器,理解其工作原理和重要功能,以帮助开发者更好地利用这一强大...

    spring aop ioc实例

    最后,`springTest`这个文件可能是包含了运行Spring AOP和IOC示例的项目。这个项目可能包含了Spring配置文件、Java源代码以及必要的依赖库。为了运行这个示例,你需要设置一个Spring容器,加载配置,然后从容器中...

    Java反射_Spring IOC

    Spring框架的依赖注入(Dependency Injection, DI)是其核心特性之一,而Spring的IOC(Inversion of Control,控制反转)是DI的一种实现方式。在传统的编程模式中,对象通常负责自己创建所需的依赖项。而在Spring中...

    模拟spring IOC非常好的事例

    通过这个模拟的Spring IOC示例,你可以学习到如何设置bean的属性,如何处理bean间的依赖关系,以及如何在代码中获取和使用这些bean。对于Spring初学者来说,这是一个很好的起点,可以帮助你更好地理解和掌握Spring的...

    模拟Spring的IoC容器实现注解自动装配

    在Spring框架中,IoC(Inversion of Control)容器是其核心特性之一,它负责管理对象的生命周期和依赖关系。IoC容器通过控制反转的概念,将对象的创建和依赖关系的配置从应用代码中分离出来,使代码更加灵活、可测试...

    spring IOC

    在文件名为【ioc01】的压缩包中,可能包含了Spring IOC的基础教程或者示例代码,它可能涵盖了如何创建Bean定义、配置依赖注入、使用不同类型的Bean作用域(如singleton、prototype)、以及如何利用@Autowired注解...

    Spring Ioc 注解 依赖注入

    其中,IoC和依赖注入(Dependency Injection, DI)是Spring框架最核心的部分之一。 #### 二、IoC容器概述 在传统的Java应用程序中,对象的创建和管理通常由程序员来完成。这种方式会导致代码之间存在高度耦合,难以...

Global site tag (gtag.js) - Google Analytics