`

spring学习实例之bean的获取

阅读更多
很遗憾,在达内培训的时候没有好好学习spring,现在只好重新学习。我不太擅于理论的讲解,所以在这就把我做实验的代码贴出来。
工具:MyEclipse8.0+spring2.0
1、首先新建普通java工程:spring1;
2、添加spring2.0的核心类库。
jar包如下图:

3、新建包结构如下图:


编写Hello接口。该接口有一个sayHello方法。hello.java代码如下:
package hello;

public interface Hello {
	public void sayHello();
}


编写Hello的实现类:HelloImpl。实现sayHello方法,可以在控制台打印一句话:hello spring !代码如下:
package hello;

public class HelloImpl implements Hello{
	public void sayHello(){
		System.out.println("hello spring !");
	}
}


配置spring的配置文件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"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
	
	<bean id="hello" class="hello.HelloImpl"></bean>
</beans>


编写测试测试类TestHello.java
package test;

import hello.Hello;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;


public class TestHello {
	public static void main(String[]args){
		
		/**
		 * bean有两种获取方式:BeanFactory、ApplicationContext 
		 * BeanFactory
		 * 		缺省延迟实例化bean
		 * ApplicationContext 
		 * 		缺省预先实例化bean
		 * 		3种实现:加载资源的位置不同
		 * 			ClassPathXmlApplicationContext
		 * 			FileSystemXmlApplicationContext
		 * 			XmlWebApplicationContext
		 */
		Resource resource=new ClassPathResource("applicationContext.xml");
		BeanFactory bf=new XmlBeanFactory(resource);
		Hello hello1=(Hello)bf.getBean("hello");
		hello1.sayHello();
		
		ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
		Hello hello2=(Hello)ac.getBean("hello");
		hello2.sayHello();
	}
}


运行TestHello.java将在控制台打印如下信息:
hello spring !
hello spring !
注意,因为这个例子没有配置log4j,所以会有两行警告信息,直接无视。
  • 大小: 6.8 KB
  • 大小: 4.8 KB
分享到:
评论

相关推荐

    Spring实例化Bean顺序

    在Spring框架中,Bean的实例化顺序是一个关键概念,它涉及到如何管理和协调多个Bean的创建与依赖关系。这里,我们主要探讨的是Spring如何通过其IoC(Inversion of Control)容器来实例化Bean,并理解其背后的逻辑。 ...

    Spring的三种实例化Bean的方式

    在Spring框架中,实例化Bean是管理对象生命周期的关键部分。Spring提供了多种方式来创建和管理Bean,这使得我们可以根据项目需求灵活选择最佳实践。本文将详细介绍Spring中的三种主要的Bean实例化方式:XML配置、...

    Spring 实例化Bean的三种方式

    其中,Bean的实例化是Spring框架的核心功能之一,它支持多种实例化Bean的方式,以适应不同的应用场景和需求。本文将深入探讨Spring中实例化Bean的三种主要方式:构造器注入、静态工厂方法注入以及实例工厂方法注入。...

    浅谈springioc实例化bean的三个方法

    实例化Bean是IOC的核心步骤之一,本文将详细讲解Spring IOC实例化Bean的三个方法。 一、构造器实例化 构造器实例化是指使用Bean的构造函数来实例化Bean。这种方法简单易用,但需要Bean提供无参构造函数。在上面的...

    通过Spring上下文获取bean的实例对象

    通过Spring上下文获取bean的实例对象

    spring IOC反射装载bean

    在这个特定的"spring IOC反射装载bean"的主题中,我们将深入探讨Spring如何通过XML配置文件来加载和管理Bean,并利用Java的反射机制来实例化这些Bean。 首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些...

    第一章 Spring4 简介及获取Bean

    1. **通过Bean的ID**:使用`ApplicationContext`的`getBean()`方法,传入Bean的ID来获取实例。 2. **自动装配(Autowired)**:使用`@Autowired`注解,Spring会自动匹配类型匹配的Bean并注入。 3. **构造函数注入**...

    Spring Bean创建初始化流程.docx

    在`doCreateBean()`方法中,Spring会创建Bean的实例,`createBeanInstance(beanName, mbd, args)`执行Bean实例的创建,而`populateBean(beanName, mbd, instanceWrapper)`则负责填充Bean的属性,将依赖注入到Bean中...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    在Spring框架中,Bean的生命周期管理是其核心特性之一,然而有时我们可能会遇到Spring Bean重复执行两次的问题,即实例被构造两次。这个问题可能是由多种原因引起的,涉及到Spring的初始化过程和容器的行为。以下是...

    Spring项目bean实例化代码

    在Spring框架中,Bean的实例化是核心概念之一,它涉及到如何管理和控制应用程序中的对象生命周期。本篇文章将深入探讨Spring项目中Bean的实例化过程,包括三种主要的bean实例化方式:构造方法、静态工厂和实例工厂。...

    Java中Spring获取bean方法小结

    这里我们将详细探讨如何在Java中通过Spring获取配置的bean。 1. **BeanFactory与ApplicationContext** - **BeanFactory** 是Spring中最基础的IoC容器,负责管理和实例化Bean。它允许开发者定义Bean的生命周期和...

    Spring之核心容器bean

    在Spring中,bean是一个由容器管理的对象,它的实例化、初始化、装配和销毁都是由Spring容器控制的。你可以通过XML、注解或者Java配置类来定义bean。例如,一个简单的XML配置如下: ```xml &lt;bean id="myBean" class...

    Spring Bean实例化实现过程解析

    在这个过程中,Spring 容器会自动调用 Bean1 的无参构造方法来实例化 Bean1,这样我们就可以获取到 Bean1 实例。 2. 静态工厂方法实例化 静态工厂方法实例化是指通过静态工厂方法来实例化 Bean。这意味着,我们...

    spring bean XML配置入门

    一旦XML配置加载到Spring容器中,容器将根据配置创建Bean实例,并按照定义进行初始化、依赖注入,最后完成Bean的生命周期管理。 10. **实践操作**: 在实际开发中,我们可以使用Eclipse的Spring插件来简化Bean...

    线程中获取spring 注解bean

    当需要在线程中获取Spring注解的bean时,有几种常见的方法: 1. **ThreadLocal**:Spring提供了一种名为`ThreadLocalTargetSource`的特殊`TargetSource`实现,可以将bean实例绑定到当前线程。这样,每个线程都有其...

    Spring (bean怎样注入值)学习实例

    在Spring框架中,Bean的注入是其核心特性之一,它允许开发者通过声明式的方式管理对象的依赖关系。本文将深入探讨如何在Spring中通过XML配置文件对Bean进行值的注入,包括List、Set和Map等集合类型的注入。 首先,...

    实例化Spring bean的两种工厂方法

    在Spring框架中,bean的实例化是其核心功能之一,它允许我们管理应用程序中的对象生命周期。本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念...

    spring bean的生命周期

    - **Singleton**:Spring容器中只会存在一个Bean实例,所有对Bean的请求都会返回同一个实例。 - **Prototype**:每次请求都会创建一个新的Bean实例。 - **Request**:在Web应用中,每个HTTP请求都会创建一个Bean...

    spring bean life cycle

    在Spring框架中,Bean生命周期是核心概念之一,它涉及到Bean的创建、初始化、使用和销毁等阶段。了解和掌握Bean生命周期对于开发高质量的Spring应用至关重要。以下是对Spring Bean生命周期的详细解析。 首先,Bean...

    Spring实战之获得Bean本身的id操作示例

    Spring实战之获得Bean本身的id操作示例 在Spring框架中,获取Bean本身的id操作是一种常见的需求。通过实现BeanNameAware接口,Spring容器会在创建Bean时自动调用setBeanName()方法,并将Bean的配置id作为参数传给该...

Global site tag (gtag.js) - Google Analytics