Spring IOC的介绍:
通常,应用代码需要告知容器或框架,让它们找到自身所需要的类,然后再由应用代码创建待使用的对象实例。因此,应用代码在使用实例之前,需要创建对象实例。然而,
IoC模式中,创建对象实例的任务交给IoC容器或框架(Spring的配置文件),使得应用代码只需要直接使用实例,这就是IoC。相对IoC 而言,“依赖注入”的确更加准确的描述了这种设计理念。所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。
任何重要的系统都需要至少两个相互合作的类来完成业务逻辑。通常,每个对象都要自己负责得到它的合作(依赖)对象。你会发现,这样会导致代码耦合度高而且难于测试。
使用IoC,对象的依赖都是在对象创建时由负责协调系统中各个对象的外部实体提供的,这样使软件组件松散连接成为可能。
(1)应用组件不需要在运行时寻找其协作者,因此更易于开发和编写应用;
(2)由于借助于IoC容器管理组件的依赖关系,使得应用的单元测试和集成测试更利于展开;
(3)通常,在借助于IoC容器关系业务对象的前提下,很少需要使用具体IoC容器提供的API,这使得集成现有的遗留应用成为可能。
因此,通过使用IoC能够降低组件之间的耦合度,最终,能够提高类的重用性,利于测试,而且更利于整个产品或系统集成和配置
依赖注入和控制反转是同一个概念。具体含义:是当某个角色(可能是一个实例,调用者)需要另一个角色(另一个实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。不管是依赖注入,还是控制反转,都说明Spring采用动态、灵活的方式来管理各种对象。
bean:那些组成应用的主题及有Spring IoC容器所管理的对象被称之为bean,而bean和bean之间的相互依赖关系通过配置元数据(xml文档)来描述。bean定义与应用程序中实际使用的对象一一对应,通常情况下bean的定义包括:服务层对象,数据访问层对象(DAO)等等。
容器:在SPRING中,org.springframework.beans.factory.BeanFactory是Spring IoC容器的实际代表者,IOC容器负责容纳此前所描述的bean,并对bean进行管理。
实例化容器:
ApplicationContext context=new ClassPathXmlApplicationContext'applicactionContext.xml';
BeanFactory factory=BeanFactorycontext;
package onlyfun.caterpillar;
public class HelloBean {
private String helloWord = "Hello!World!";
public void setHelloWord(String helloWord) {
this.helloWord = helloWord;
}
public String getHelloWord() {
return helloWord;
}
}
package onlyfun.caterpillar;
import java.io.*;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
public class SpringTest {
public static void main(String[] args) throws IOException {
//InputStream is = new FileInputStream("D:\\apache-tomcat-6.0.18\\webapps\\axis\\WEB-INF\\classes\\bean.xml");
//BeanFactory factory = new XmlBeanFactory(is);
Resource resource = new FileSystemResource("WEB-INF/classes/bean.xml");
BeanFactory factory = new XmlBeanFactory(resource);
HelloBean hello = (HelloBean) factory.getBean("helloBean");
System.out.println(hello.getHelloWord());
}
}
<?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="helloBean" class="onlyfun.caterpillar.HelloBean">
<property name="helloWord">
<value>Hello!Justin!</value>
</property>
</bean>
</beans>
- JDK 1.4+ collections available
- Loading XML bean definitions from file [D:\apache-tomcat-6.0.18\webapps\axis\WEB-INF\classes\bean.xml]
Hello!Justin!
分享到:
相关推荐
在本教程中,我们将深入探讨如何手写Spring框架的核心部分,以实现一个简化的"HelloSpring"示例。Spring框架是Java开发中的一个基石,它提供了依赖注入、面向切面编程(AOP)以及用于构建企业级应用的全面解决方案。...
【标题】"helloSpring"揭示了我们即将探讨的是Spring框架的基础知识,特别是针对初学者的入门教程。Spring是Java企业级应用开发中的一个核心框架,它提供了全面的基础设施支持,帮助开发者创建健壮且可测试的Java...
Spring4.0从入门到精通hellospring 原版本地址http://www.tutorialspoint.com/spring/spring_hello_world_example.htm 这个是我翻译完以后的
**Spring MVC实战系列教程(1)--Hello Spring MVC** 在本文中,我们将深入探讨Spring MVC框架,这是一个广泛使用的Java Web应用程序开发工具。Spring MVC是Spring框架的一个模块,它提供了MVC(模型-视图-控制器)...
标题中的"ch01-hello-spring1"表明这是一个关于Spring框架入门的教程,很可能是某个系列教程的第一章,主题是“Hello Spring”。这个压缩包可能包含代码示例、配置文件和其他教学材料,用于帮助初学者理解并实现...
下面是Spring的HelloWorld的程序的文件结构: C:. │ .classpath │ .project │ ├─build │ └─classes │ └─com │ ├─dineshonjava │ │ └─sdnext │ │ └─springConfig │ │ spring.xml │ │ │ ...
Hello SpringSSM 框架学习 (Spring篇)一、第一个Spring项目这里就不解释Spring是...第二步:新建类HelloSpring.classpublic class HelloSpring {private String who = null;public void print() {System.out.println
我的博客中“maven环境搭建及Spring入门”的项目代码。在idea中运行成功。 1。创建IOC容器 2。通过xml装配对象 【简单类型用value、复杂(引用类型)用ref、数组,集合,Map的装配】 3。IOC容器获取bean的方式 * ...
"Spring学习之创建项目 Hello Spring实例代码详解" Spring框架是当前Java生态系统中最流行的框架之一,广泛应用于企业级应用开发中。今天,我们将通过一个简单的Hello World项目来学习Spring框架的创建和使用。 ...
"Spring4 HelloWorld"是入门Spring框架的基础教程,主要涉及以下几个关键知识点: 1. **Spring框架概述**:Spring是一个开源的Java平台,它提供了一个全面的编程和配置模型,用于现代Java应用。Spring的核心特性...
**Spring3 MVC 入门Hello World源码解析** Spring3 MVC是Spring框架的重要组成部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)框架。本篇将深入探讨Spring3 MVC的基础知识,通过"Hello World"实例来...
《Spring框架基础学习指南——以HelloSpring项目为例》 在编程世界中,Spring框架是Java开发者最常使用的轻量级框架之一,它以其强大的功能、灵活性和易用性深受青睐。"HelloSpring"项目,正如其名,是一个专门为...
"Spring HelloWorld案例"是一个入门级的学习教程,旨在帮助初学者理解和掌握Spring框架的基本概念和工作原理。这个案例将展示如何使用Spring MVC来创建一个简单的HTTP请求处理,并通过ViewResolver返回响应。 首先...
《HelloSpring:深入理解Spring框架》 在编程领域,Spring框架是Java开发中不可或缺的一部分,尤其在企业级应用开发中占据主导地位。本教程“HelloSpring:学习弹簧的样本”旨在帮助初学者和有一定经验的开发者更...
标题 "12.Elka-HelloSpring:进行多个输入" 暗示了这是一个关于使用Spring框架处理多个输入源的教程。在Java开发中,Spring框架是广泛应用的IoC(Inversion of Control)和DI(Dependency Injection)容器,它极大地...
在本项目"HelloSpring"中,开发者显然正在重新熟悉Spring MVC框架,这是一个广泛使用的Java Web开发框架,用于构建动态和数据驱动的Web应用程序。Spring MVC是Spring框架的一部分,它提供了模型-视图-控制器(MVC)...
以上是对"HelloSpring"这个主题中涉及的Spring框架相关知识点的详细解释,涵盖了Spring的基本架构、Bean生命周期、依赖注入、Spring MVC的工作流程以及Spring Boot的应用场景。这些内容对于理解和实践Spring框架具有...
在本文中,我们将探讨如何使用Spring MVC 3框架创建一个简单的"Hello World"应用程序。Spring MVC是Spring框架的一部分,它提供了一个模型-视图-控制器(MVC)架构来构建Web应用程序。通过XML配置,我们可以定义控制...
6. **理解 helloSpring**:从提供的文件列表 "helloSpring" 来看,这可能是项目中的一个关键文件或目录,可能包含了配置文件、控制器类或其他必要的资源。实际操作时,你需要将这个 "helloSpring" 文件或目录正确地...