`

Spring Ioc(依赖注入)入门例子--属性注入

阅读更多
1、定义2个接口。(不属于例子范畴):
package com.IoC;

public interface Person {
	/**
	 * 使用斧子
	 */
	public void useAxe();
}



package com.IoC;

public interface Axe {
	/**
	 * 砍的方法
	 */
	public String chop();
}



2、实现类:
package com.IoC;

public class Chinese implements Person{
	private Axe axe;
	/**
	 * 设值注入所需的setter方法
	 * @param axe
	 */
	public void setAxe(Axe axe)
	{
		this.axe = axe;
	}

	public void useAxe() {
		System.out.println(axe.chop());
	}
}



package com.IoC;

public class StoneAxe implements Axe{

	public String chop() {
		return "这是一把砍得很慢的破斧子!";
	}

}



3、applicationContext.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-2.5.xsd">
<!-- 以上是全部Spring都一样的配置文件 、beans是根元素-->
  <bean name="chinese" class="com.IoC.Chinese">
     <property name="axe">
       <ref local="StoneAxe"/><!-- 如果注入的是基本类型则用value、如果是引用类型则使用ref -->
     </property>
  </bean>
  <bean id="StoneAxe"  class="com.IoC.StoneAxe"></bean>
</beans>


4、测试类:
package com.IoC;


import org.springframework.context.ApplicationContext;
import org.springframework.context.support.*;


public class testIoC {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ApplicationContext ctx = new FileSystemXmlApplicationContext("/src/applicationContext.xml");
		Person per = (Person)ctx.getBean("chinese");
		per.useAxe();
	}

}



5、主要原理:
       StoneAxe类有一个使用斧子的方法,而chinese类是使用斧子的人。
xml里面申明2个bean,但是StoneAxe是chinese的一个属性,但是上面也有说到,value用于基本类型,而ref用于引用类型。运行chinese的时候,提供调用useAxe()进行使用“斧子”,而要引进StoneAxe则通过seter方法,进行后面的属性注入。

总结:
    第一次开技术博客,第一次发表自己的原创文章,程序员的一个通病,会做,但是表达还有所欠缺,以后要多改进。
    有问题的话大家可以互相探讨。
  • src.rar (1.7 KB)
  • 下载次数: 32
4
0
分享到:
评论
1 楼 daiezhu 2011-12-14  
你第一次写就写得很好啊,注释和命名都很恰当,cool

相关推荐

    JavaEE Spring IoC入门

    在Spring中,我们可以使用`@Autowired`注解配合JUnit进行单元测试,Spring会自动将所需依赖注入到测试类的字段或方法参数中。 总的来说,学习"JavaEE Spring IoC入门"意味着你需要理解Spring如何通过IoC管理对象,...

    Spring从入门到精通

    - **IOC容器**:Spring 提供了强大的依赖注入功能,使得对象之间的耦合度大大降低。 - **AOP支持**:Spring 支持面向切面编程,可以在运行时动态地添加行为到现有的Java对象上。 - **如何学习Spring:** - 首先...

    IoC小例子(了解一下IoC设计模式入门)

    总之,IoC设计模式通过控制反转和依赖注入,使得软件设计更加灵活、可扩展和可测试。了解并熟练掌握IoC有助于我们编写出高质量、低耦合的代码。在实际项目开发中,如Spring框架提供的IoC容器,可以帮助我们有效地...

    Spring_01_入门篇_依赖注入(控制反转)_XML

    在`Spring_01_入门篇_依赖注入(控制反转)_XML`中,我们可以看到一个或多个XML配置文件,它们定义了bean的定义,包括bean的类名、属性以及它们之间的依赖关系。例如: ```xml ``` 在这个例子中,`exampleBean`...

    spring入门学习-hello,world

    Spring框架是Java开发中广泛应用的一个开源框架,以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)功能而著名。它简化了Java应用程序的开发,使得组件...

    Spring--IOC

    依赖注入是Spring实现IoC的核心机制。它允许我们在不修改代码的情况下,动态地改变对象之间的依赖关系。在Spring中,我们可以通过XML配置、注解或者Java配置的方式来声明依赖。例如,我们可以在XML配置文件中定义...

    Spring入门小例子

    1. **配置文件**:通常使用`applicationContext.xml`作为Spring的主配置文件,这里会定义Bean的实例化、依赖注入等信息。 2. **Bean的定义与注入**:在配置文件中,你可以看到如 `&lt;bean&gt;` 标签的使用,用于定义一个...

    Spring_3.x企业应用开发实战 目录

    - **属性注入**:通过 setter 方法注入依赖。 - **构造函数注入**:通过构造函数注入依赖。 - **工厂方法注入**:通过工厂方法创建 Bean。 - **选择注入方式的考量**:根据具体情况选择合适的注入方式。 - **...

    Spring入门案例

    Spring框架的核心是IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)。控制反转是指不再由代码直接创建对象,而是由Spring容器负责创建和管理对象。依赖注入则是通过Spring容器将对象...

    在Nutz中使用Ioc-Annotation的入门教程

    Nutz的IoC容器是基于Spring的IoC思想设计的,但更为轻量级。它允许开发者声明、管理和注入依赖关系,使得对象的创建和管理变得更加简单。通过使用注解,我们可以避免编写大量的XML配置文件,提高开发效率。 ### 2. ...

    Spring入门到应用

    - **概念定义**:**IOC**(Inversion of Control,控制反转)和**DI**(Dependency Injection,依赖注入)是Spring框架的两个核心概念。控制反转指的是将控制权从应用代码转移到框架手中,依赖注入则是实现这一目的...

    简单的Spring例子

    通过这个"简单的Spring例子",初学者可以学习到如何设置Spring环境,编写Bean配置,使用依赖注入,以及如何构建一个基本的Spring MVC应用。随着深入实践,他们将进一步掌握Spring的高级特性,如数据访问、安全、消息...

    Spring.Net控制反转IoC入门使用

    - `UserInfo`类的`OrderBy`属性通过`ref`属性注入`Order`对象,实现了依赖注入。 4. **使用IoC容器**: - 在控制器中,通过`ContextRegistry.GetContext()`获取ApplicationContext,它是IoC容器的实例。 - 调用`...

    springtest.rar

    在本实例中,我们将深入探讨Spring的IoC(Inversion of Control,控制反转)容器,特别是如何通过Maven构建项目,并使用@Service、@Autowired和@Resource注解来实现依赖注入。 首先,让我们理解什么是Spring的IOC。...

    《spring framework 2 入门经典》一书的源代码

    Spring Framework 2是Spring框架的一个里程碑版本,它在1.x的基础上进行了诸多改进和增强,尤其是在依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)方面,为开发者提供了...

    0基础入门Spring

    在这个例子中,`bookDao`和`bookService`都是由Spring管理的bean,`bookService`依赖于`bookDao`,这种依赖关系是通过`ref`属性在配置文件中定义的。 通过这个简单的案例,我们可以了解到Spring如何管理和装配bean...

    spring.net的简单例子

    这个“spring.net的简单例子”旨在为初学者提供一个快速入门的指南,帮助他们理解并掌握Spring.NET的核心概念和用法。 Spring.NET的核心组件包括依赖注入(Dependency Injection,DI)、面向切面编程(Aspect-...

    Spring源码

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(DI)和面向切面编程(AOP)功能而闻名。这个压缩包包含了多个文件,分别对应Spring的不同学习主题,让我们一一解析。 首先,"02-beanAssmble"可能...

    Spring笔记.md

    Spring的核心特性包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect Oriented Programming, AOP)、数据访问/集成(Data Access/Integration)、事务管理等。这些特性共同构成了Spring的核心功能。 ...

Global site tag (gtag.js) - Google Analytics