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方法,进行后面的属性注入。
总结:
第一次开技术博客,第一次发表自己的原创文章,程序员的一个通病,会做,但是表达还有所欠缺,以后要多改进。
有问题的话大家可以互相探讨。
分享到:
相关推荐
在Spring中,我们可以使用`@Autowired`注解配合JUnit进行单元测试,Spring会自动将所需依赖注入到测试类的字段或方法参数中。 总的来说,学习"JavaEE Spring IoC入门"意味着你需要理解Spring如何通过IoC管理对象,...
- **IOC容器**:Spring 提供了强大的依赖注入功能,使得对象之间的耦合度大大降低。 - **AOP支持**:Spring 支持面向切面编程,可以在运行时动态地添加行为到现有的Java对象上。 - **如何学习Spring:** - 首先...
总之,IoC设计模式通过控制反转和依赖注入,使得软件设计更加灵活、可扩展和可测试。了解并熟练掌握IoC有助于我们编写出高质量、低耦合的代码。在实际项目开发中,如Spring框架提供的IoC容器,可以帮助我们有效地...
在`Spring_01_入门篇_依赖注入(控制反转)_XML`中,我们可以看到一个或多个XML配置文件,它们定义了bean的定义,包括bean的类名、属性以及它们之间的依赖关系。例如: ```xml ``` 在这个例子中,`exampleBean`...
Spring框架是Java开发中广泛应用的一个开源框架,以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)功能而著名。它简化了Java应用程序的开发,使得组件...
依赖注入是Spring实现IoC的核心机制。它允许我们在不修改代码的情况下,动态地改变对象之间的依赖关系。在Spring中,我们可以通过XML配置、注解或者Java配置的方式来声明依赖。例如,我们可以在XML配置文件中定义...
1. **配置文件**:通常使用`applicationContext.xml`作为Spring的主配置文件,这里会定义Bean的实例化、依赖注入等信息。 2. **Bean的定义与注入**:在配置文件中,你可以看到如 `<bean>` 标签的使用,用于定义一个...
- **属性注入**:通过 setter 方法注入依赖。 - **构造函数注入**:通过构造函数注入依赖。 - **工厂方法注入**:通过工厂方法创建 Bean。 - **选择注入方式的考量**:根据具体情况选择合适的注入方式。 - **...
Spring框架的核心是IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)。控制反转是指不再由代码直接创建对象,而是由Spring容器负责创建和管理对象。依赖注入则是通过Spring容器将对象...
Nutz的IoC容器是基于Spring的IoC思想设计的,但更为轻量级。它允许开发者声明、管理和注入依赖关系,使得对象的创建和管理变得更加简单。通过使用注解,我们可以避免编写大量的XML配置文件,提高开发效率。 ### 2. ...
- **概念定义**:**IOC**(Inversion of Control,控制反转)和**DI**(Dependency Injection,依赖注入)是Spring框架的两个核心概念。控制反转指的是将控制权从应用代码转移到框架手中,依赖注入则是实现这一目的...
通过这个"简单的Spring例子",初学者可以学习到如何设置Spring环境,编写Bean配置,使用依赖注入,以及如何构建一个基本的Spring MVC应用。随着深入实践,他们将进一步掌握Spring的高级特性,如数据访问、安全、消息...
- `UserInfo`类的`OrderBy`属性通过`ref`属性注入`Order`对象,实现了依赖注入。 4. **使用IoC容器**: - 在控制器中,通过`ContextRegistry.GetContext()`获取ApplicationContext,它是IoC容器的实例。 - 调用`...
在本实例中,我们将深入探讨Spring的IoC(Inversion of Control,控制反转)容器,特别是如何通过Maven构建项目,并使用@Service、@Autowired和@Resource注解来实现依赖注入。 首先,让我们理解什么是Spring的IOC。...
Spring Framework 2是Spring框架的一个里程碑版本,它在1.x的基础上进行了诸多改进和增强,尤其是在依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)方面,为开发者提供了...
在这个例子中,`bookDao`和`bookService`都是由Spring管理的bean,`bookService`依赖于`bookDao`,这种依赖关系是通过`ref`属性在配置文件中定义的。 通过这个简单的案例,我们可以了解到Spring如何管理和装配bean...
这个“spring.net的简单例子”旨在为初学者提供一个快速入门的指南,帮助他们理解并掌握Spring.NET的核心概念和用法。 Spring.NET的核心组件包括依赖注入(Dependency Injection,DI)、面向切面编程(Aspect-...
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(DI)和面向切面编程(AOP)功能而闻名。这个压缩包包含了多个文件,分别对应Spring的不同学习主题,让我们一一解析。 首先,"02-beanAssmble"可能...
Spring的核心特性包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect Oriented Programming, AOP)、数据访问/集成(Data Access/Integration)、事务管理等。这些特性共同构成了Spring的核心功能。 ...