`

spring中bean的三种实例化方式

阅读更多
第一种:通过构造函数实例化bean。给bean提供一个无参的构造方法(可以是默认的)通过构造函数实例化bean,需要指定class属性:

public class PersonServiceBean implements PersonService {
	
	public void save() {
		System.out.println("保存成功!");
	}
}



spring配置文件中的配置:
<!-- PersonServiceBean -->
<bean id="personService" class="com.ibm.service.impl.PersonServiceBean"/>

第二种:通过静态工厂方法实例化bean。定义工厂bean时,除了要指定工厂的class属性外,同时还必须使用factory-method属性指定要调用的工厂方法的名称。注意factory-method的方法是静态的。

public class PersonServiceBean implements PersonService {
	
	public void save() {
		System.out.println("保存成功!");
	}
}



public class PersonServiceBeanFactory {
	
	// 静态工厂方法
	public static PersonService createPersonServiceBean() {
		return new PersonServiceBean();
	}
	
}



spring配置文件中的配置:
<bean id="personService2" class="com.ibm.service.impl.PersonServiceBeanFactory"
factory-method="createPersonServiceBean" />

第三种:通过实例工厂实例化bean。必须先实例化一个工厂(factory) bean,再在定义bean时通过factory-bean属性来设置引用哪个实例化工厂,通过factory-method来设置使用哪个方法:

public class PersonServiceBean implements PersonService {
	
	public void save() {
		System.out.println("保存成功!");
	}
}


public class PersonServiceBeanFactory {

	// 实例工厂方法 
	public PersonService createPersonServiceBean2() {
		return new PersonServiceBean();
	}
	
}


spring配置文件中的配置:
<bean id="personServiceBeanFactory" class="com.ibm.service.impl.PersonServiceBeanFactory" />
<bean id="personService3" factory-bean="personServiceBeanFactory" factory-method="createPersonServiceBean2" />


分享到:
评论

相关推荐

    Spring实例化Bean顺序

    4. **启动后处理器(BeanPostProcessor)**:这些是特殊类型的Bean,它们在所有常规Bean实例化之后,但初始化之前进行处理。它们的实例化顺序由`@Order`注解决定,或者通过实现`Ordered`接口来控制。 5. **...

    Spring的三种实例化Bean的方式

    本文将详细介绍Spring中的三种主要的Bean实例化方式:XML配置、注解配置以及Java配置。 ### 1. XML配置 XML配置是Spring早期版本中最常见的Bean定义方式。在`spring_first`目录下的配置文件(如`beans.xml`)中,...

    Spring 实例化Bean的三种方式

    本文将深入探讨Spring中实例化Bean的三种主要方式:构造器注入、静态工厂方法注入以及实例工厂方法注入。 #### 1. 构造器注入(Constructor Injection) 构造器注入是指通过调用Bean类的构造器来创建Bean实例。...

    详解Spring中bean实例化的三种方式

    本文将详细探讨Spring中bean实例化的三种主要方式:普通构造方法创建、静态工厂创建和实例工厂创建。 1. 普通构造方法创建: 这是最常见、最直观的方式,适用于大部分情况。在Spring配置文件中,我们通过`&lt;bean&gt;`...

    Spring项目bean实例化代码

    本篇文章将深入探讨Spring项目中Bean的实例化过程,包括三种主要的bean实例化方式:构造方法、静态工厂和实例工厂。 首先,让我们了解什么是Bean。在Spring中,Bean是应用程序中的业务对象,它们由Spring容器负责...

    Spring Bean创建初始化流程.docx

    进入`doGetBean()`方法,这是Bean实例化的关键步骤。`doGetBean()`会处理Bean的依赖注入、类型检查等操作。 7. **创建Bean**: `createBean(beanName, mbd, args)`在`AbstractAutowireCapableBeanFactory`中实现...

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

    在Spring框架中,bean的实例化是其核心功能之一,它允许我们管理应用程序中的对象生命周期。本篇将详细探讨两种工厂方法——实例工厂方法和静态...在实际项目中,应根据实际情况权衡利弊,选择最适合的Bean实例化策略。

    详解Spring中Bean的生命周期和作用域及实现方式

    Spring中Bean的生命周期和作用域及实现方式 Spring是一个非常流行的Java应用程序框架,它提供了一个灵活的机制来管理Bean的生命周期和作用域。Bean的生命周期和作用域是Spring框架中两个非常重要的概念,它们决定了...

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

    同时,对源码进行调试也是一个有效的排查手段,可以追踪到Bean实例化的具体位置,找出问题的根源。 综上所述,Spring Bean重复执行两次的问题通常是由于配置错误、依赖注入循环、初始化回调的不当使用、静态工厂...

    Spring Bean简单应用实例

    这样,我们的代码不再负责查找和实例化依赖的对象,而是由Spring容器根据配置来创建和管理这些对象。IoC使得我们的代码更加灵活,易于测试和维护。 依赖注入(DI)是IoC的一种实现方式。在Spring中,DI允许我们声明...

    Java开发学习(四)----bean的三种实例化方式.doc

    理解Spring的Bean实例化方式对于优化代码结构和管理对象生命周期至关重要。构造方法实例化允许我们在初始化Bean时传入必要的参数,而静态工厂和实例工厂方法则提供了更多的灵活性,比如在创建Bean时返回不同类型的...

    Spring Bean的初始化和销毁实例详解

    在上面的代码中,我们使用@Configuration注解来配置Bean的初始化和销毁,并使用@Bean注解来创建Bean实例。 四、总结 在本文中,我们详细讲解了Spring Bean的初始化和销毁,包括使用@Bean的initMethod和...

    Sping学习笔记(2)----实例化Bean的三种方式

    这篇“Spring学习笔记(2)----实例化Bean的三种方式”着重讲解了如何在Spring应用上下文中初始化Bean。以下是这三种方式的详细说明: 1. **XML配置方式** 在早期的Spring版本中,XML配置是最常见的实例化Bean的...

    Spring框架中Bean的生命周期 Spring中Bean有几种作用域

    1. **实例化**:Spring容器通过`Class`对象或`FactoryBean`来创建Bean实例。默认情况下,Spring使用无参构造器创建Bean。如果Bean类没有无参构造器,开发者需要提供一个。 2. **属性注入**:Spring容器使用依赖注入...

    Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等).doc

    在 Spring 框架中,Bean 的实例化是通过 BeanFactory 中的 getBean 方法来实现的,该方法根据 bean 的名字、Class 类型和参数等来得到 bean 实例。 在了解 Bean 的实例化过程之前,我们需要了解 Spring 框架中 IoC ...

    spring bean的生命周期

    - **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...

    spring管理bean应用实例代码

    - **初始化**:Spring容器在创建Bean实例后,可以调用`@PostConstruct`注解的方法进行初始化。 - **依赖注入**:Spring可以通过构造器、setter方法、字段或工厂方法来注入依赖。 - **销毁**:当Bean不再需要时,...

    spring bean XML配置入门

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

    Spring 延迟实例化

    3. **提高性能**:减少不必要的bean实例化,可以提高整体应用程序的性能。 #### 五、默认懒加载与全局配置 除了为每个bean单独配置`lazy-init`属性外,还可以通过`&lt;beans&gt;`元素的`default-lazy-init`属性来设置...

    Spring bean 管理

    - 三种实例化Bean的方式: - 使用类构造器实例化:这是最简单的实例化方式,Spring将调用无参构造器创建Bean的实例。 - 使用静态工厂方法实例化:这种方式通过调用一个静态方法来获取Bean实例,适用于简单工厂模式...

Global site tag (gtag.js) - Google Analytics