`
ycysth
  • 浏览: 10163 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring之IoC

阅读更多

      学习Spring,首先当然是需要了解Spring平台的核心之一IoC。

 

      一、控制反转(IoC = Inversion of Control)和依赖注入(DI = Dependency Injection)

      IoC,通俗说法就是由容器控制程序之间的关系,而非由代码直接控制;也就是控制权由程序代码转移到了外部容器,控制权的转移,即所谓的反转。

      DI,即组件之间的依赖关系由容器在运行时来决定,形象的说就是由容器动态的将依赖关系注入到组件之中。依赖注入的目标并非为系统带来更多的功能,而是提升组件的复用行和可扩展性。

 

      二、依赖注入的实现类型

      1.接口注入,预先在配置文件中设定实现类的类名,动态加载实现类;

      2.构造子注入,通过构造函数完成依赖关系的设定;

      3.设值注入,通过setter方法完成依赖关系的设定。

      接口注入模式因为具有侵略性,它要求组件与特定的接口相关联,使用被限制。而构造子注入和设值注入没有以上劣势而被广泛应用。

 

      三、Spring Bean的封装机制

      1.Bean Wrapper,它的功能很简单,就是提供一个设置JavaBean的通用方法。如:

Object obj = Class.forName("com.china.bean.User").newInstance();
BeanWrapper bw = new BeanWrapperImpl(obj);	
bw.setPropertyValue("name", "CJTL");
System.out.println(bw.getPropertyValue("name"));

      这样做的好处是无需在编码时指定JavaBean的实现类和属性的值,而是在配置文件中设定,就可以在运行期间动态的创建和设定其属性的值。

      2.Bean Factory,负责根据配置文件创建并维护Bean实例。如一个比较完整的配置:

      Boy类:

package com.csh.bean;

public class Boy {

	private String name;

	private int age;

	private Girl myGirl;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Girl getMyGirl() {
		return myGirl;
	}

	public void setMyGirl(Girl myGirl) {
		this.myGirl = myGirl;
	}

	public void born() {
		System.out.println("born...");
	}

	public void die() {
		System.out.println("die...");
	}
} 

      Girl类:

 

package com.csh.bean;

public class Girl {

	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

      applicationContext.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
	<bean id="wxb"
		  class="com.csh.bean.Boy"
		  singleton="true"
		  init-method="born"
		  destroy-method="die"
		  depends-on=""
	>
		<property name="name">
			<value>xb</value>
		</property>
		<property name="age">
			<value>22</value>
		</property>
		<property name="myGirl">
			<ref local="ake"/>
		</property>
	</bean>
	
	<bean id="ake"
		  class="com.csh.bean.Girl"	  
	>
		<property name="name">
			<value>kk</value>
		</property>
	</bean>

</beans>

      测试类:

 

package com.csh.test;


import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;

import com.csh.bean.Boy;


public class Test {
	
	public static void main(String[] args) throws Exception {
		BeanFactory factory = new XmlBeanFactory(
						new FileSystemResource("src/applicationContext.xml"));
		Boy boy = (Boy) factory.getBean("wxb");
		System.out.println(boy.getName() + boy.getAge() + boy.getMyGirl().getName());
	}
}

      这样即能创建Boy类的实例,并根据配置文件进行初始化和属性值的设定。

0
0
分享到:
评论

相关推荐

    Spring之IOC示例

    在IT行业中,Spring框架是Java开发领域中一个极为...通过阅读《Spring之IOC示例》这篇博客(博文链接:https://huangminwen.iteye.com/blog/1041298),可以更深入地理解Spring的IOC机制,并学习如何在实际项目中应用。

    Spring 之IoC入门实例

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

    springIoc实现原理

    Spring Ioc(Inversion of Control,控制反转)是Spring框架的核心特性之一,它改变了传统应用程序中对象的创建和管理方式。在传统的软件设计中,对象的创建和依赖关系的维护通常由代码自身来完成,而在Spring Ioc中...

    Spring中IoC优点与缺点解析

    Spring 中 IoC 优点与缺点解析 IoC(Inversion of Control)是 Spring 框架中的一种设计模式,它的主要思想是将对象的创建和管理交给容器,从而解耦合对象之间的依赖关系。今天,我们将详细解析 IoC 的优点和缺点。 ...

    spring之ioc和aop

    IoC是Spring的核心特性之一,它的基本思想是将对象的创建和管理权交给容器,而不是由对象自身负责。在传统编程中,对象通常会自行创建依赖的对象,而在IoC中,对象的依赖关系由外部容器(如Spring的...

    Spring-ioc-jar

    Spring IOC,全称为Inversion of Control,中文常被称为“控制反转”,是Spring框架的核心特性之一。这个概念在软件设计中引入了一种新的依赖管理方式,它将对象的创建和管理权交给了容器,使得开发者可以更专注于...

    模拟实现Spring的IOC

    模拟实现__Spring的Ioc 1、Spring主要两个作用:实例化Bean,动态装配Bean。并将所有的bean放到spring容器中,调用时从容器中取。Spring容器就是一个bean的Map:private Map, Object&gt; beans = new HashMap, Object&gt;...

    spring_ioc

    这是spring_ioc部分的内容。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    J2EE企业级项目开发-3期(KC007) 7.2 精解Spring之IoC原理与具体使用文档.docx

    【Spring的IoC原理与具体使用】 IoC(Inversion of Control,控制反转)是Spring框架的核心设计理念,它改变了传统Java应用程序中对象的创建和管理方式。在IoC模式下,对象的创建和依赖关系不再由对象自身负责,...

    模拟Spring的IOC

    在Java世界中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IOC)能力,成为企业级应用开发的首选框架之一。理解并模拟Spring的IOC机制对于深入学习Spring...

    Spring源码分析_Spring_IOC

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

    Spring的ioc小案例

    本案例主要探讨的是Spring框架的核心特性之一——依赖注入(Dependency Injection,简称DI),通常也被称为IOC(Inversion of Control,控制反转)。通过这个小案例,我们可以深入理解Spring如何实现IoC以及属性注入...

    Spring-IOC笔记

    spring-IOC的一些笔记心得

    以注解方式模拟Spring IoC AOP

    依赖注入是Spring框架的核心特性之一,它通过反转对象创建和管理的控制权,使得应用程序组件之间的耦合度降低。在Spring中,通常通过以下三种注解实现IoC: - `@Autowired`:自动装配,Spring会根据类型或名称找到...

    Spring-IOC实现

    Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性,它将对象的创建和管理权交由Spring容器处理,使得开发者可以更专注于业务逻辑的编写,而不是对象的生命周期管理。下面,我们将深入探讨Spring...

    Spring的IoC实现案例

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

    Spring_IOC-v(上)笔记

    IoC 技术是 Spring 框架的核心概念之一,它的主要思想是将对象的创建和管理交给容器来管理,而不是由对象自己来管理。这样可以降低对象之间的耦合度,提高系统的灵活性和可维护性。 在 Spring 中,IoC 通过依赖...

    Spring_IOC详解.pdf

    Spring框架作为Java企业级应用开发的基石,其核心组件之一便是IOC(Inverse of Control)容器。IOC容器负责管理应用程序中的对象及其依赖关系,实现了控制反转,极大地简化了Java应用的开发流程。本文将基于Spring...

    spring ioc

    Spring 是一个广泛应用的 Java 应用开发框架,其核心特性之一就是IOC,它极大地简化了软件组件之间的依赖管理。在本文中,我们将深入探讨 Spring IOC 的概念、工作原理以及如何在实际项目中应用。 首先,理解 IOC ...

Global site tag (gtag.js) - Google Analytics