Spring最核心的概念就是“依赖注入”。所谓依赖注入就是你需要什么对象,Spring容器就帮你实例化这个对象,然后注入到你的应用程序中。这样你就不用自己实例化依赖对象,不但简化了开发,还解耦了各模块的依赖。下面我来展示一个实例,比如Person对象要使用Computer,必须依赖Computer这个对象。使用Spring,使你不用自己new对象,Spring容器会帮你在需要的时候注入Computer这个对象。在Spring里,任何java对象都可以当做bean。
Person类:
package com.ydoing.demo;
public class Person {
private Computer computer;
public void setComputer(Computer computer) {
this.computer = computer;
}
public void useComputer() {
computer.start();
}
}
Computer类:
package com.ydoing.demo;
public class Computer {
public void start() {
System.out.println("computer run");
}
}
bean的配置:
<?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-3.0.xsd">
<bean id="computer" class="com.ydoing.demo.Computer" />
<bean id="person" class="com.ydoing.demo.Person">
<property name="computer" ref="computer" />
</bean>
</beans>
测试类:
package com.ydoing.demo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
Person person = ctx.getBean("person", Person.class);
person.useComputer();
}
}
console输出:
七月 19, 2015 9:25:05 上午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@64fe7a67: startup date [Sun Jul 19 09:25:05 CST 2015]
七月 19, 2015 9:25:05 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [beans.xml]
computer run
总结:
从以上程序我们看出,没有出现任何new关键字,person对象需要computer对象时,不需要new。Spring会自动注入computer这个bean到person中。
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
在这个"spring入门实例"中,我们将探索如何利用Spring和Spring JDBC构建一个简单的登录模块。 首先,我们需要理解Spring框架的基础概念。Spring框架的核心在于IoC(Inversion of Control,控制反转)和DI...
在这个"spring入门实例代码"中,我们将深入探讨Spring框架的基础知识和关键概念。 首先,让我们从Spring的核心特性——依赖注入开始。依赖注入是一种设计模式,它允许组件之间的依赖关系在运行时被注入,而不是在...
以上就是 Spring 和 Struts 的基础概念及入门实例的创建流程。这两个框架各有优势,Spring 更注重模块化和灵活性,而 Struts 则更侧重于 MVC 结构的实现。在实际项目中,两者常被一起使用,形成所谓的“Spring + ...
这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring...
**Spring MVC 入门实例详解** Spring MVC 是 Spring 框架的一个重要模块,用于构建 Web 应用程序。它提供了模型-视图-控制器(MVC)架构,帮助开发者将业务逻辑、数据处理和用户界面分离,实现更加清晰的代码结构。...
#### 三、Spring入门实例详解 - **Spring入门示例** - **配置模式**:通过XML配置文件管理Bean的生命周期和依赖关系。 - **注解模式**:使用注解(如`@Component`、`@Autowired`)定义Bean及其依赖关系。 - **...
**Spring Security 入门实例详解** Spring Security 是一个强大的安全框架,用于保护基于 Java 的 Web 应用程序。它提供了一套完整的访问控制和身份验证机制,帮助开发者处理应用程序的安全需求。本教程将引导你...
在这个入门实例中,我们将深入理解Spring AOP如何实现简单日志记录。 首先,AOP的核心概念包括切面(Aspect)、通知(Advice)、连接点(Join Point)、切入点(Pointcut)和织入(Weaving)。切面是AOP中的核心...
在Spring入门阶段,首先要理解的是依赖注入(DI)。DI是一种设计模式,它允许我们解耦组件,让它们之间通过接口而非具体的实现进行交互。Spring通过容器管理对象的生命周期和依赖关系,我们只需要配置好bean的定义,...
在这个“Spring 入门代码实例”中,我们将深入探讨Spring的依赖注入机制,包括设值注入和构造注入两种方式,并结合JUnit进行测试。 **一、Spring IOC (控制反转) 理念** 控制反转(Inversion of Control,IoC)是...
** Jersey2.13 + Spring3.2.3入门实例详解** 本文将深入探讨如何结合Jersey 2.13和Spring 3.2.3框架构建一个入门级的Web服务应用。首先,我们来了解这两个关键组件的核心功能。 **Jersey** 是Java语言中最流行的...
首先,我们来解析一下标题"Spring入门案例"。这表明我们将学习的是Spring的基本概念和基础应用,包括如何搭建Spring项目环境,配置Spring容器,以及如何使用Spring管理Bean。Spring框架的核心是IoC(Inversion of ...
**Spring Boot 入门实例详解** Spring Boot 是一个由 Pivotal 团队开发的 Java 框架,旨在简化Spring应用的初始搭建以及开发过程。它通过提供默认配置,帮助开发者快速创建独立运行的、生产级别的基于Spring的应用...
这个名为"Spring入门小实例"的压缩包文件显然旨在帮助初学者快速掌握Spring的基本用法。以下是一些关于Spring框架的核心知识点及其详细说明: 1. **Spring概述**:Spring是一个开源的Java平台,它提供了全面的应用...