`
liuyiyou
  • 浏览: 23639 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

使用静态工厂方法实例化bean

 
阅读更多

使用这种方法除了指定必须的class属性,还要指定factory-method属性来指定实例化bean的方法,而且使用静态化工厂方法也允许指定方法参数,Spring IoC容器将调用此属性指定的方法来获取bean

 

package org.spring.chapter2.helloworld;

public class HelloImpl2 implements HelloApi {

	private String message;
	
	public HelloImpl2() {
		this.message="Hello World in Empty Constructor";
	}

	public HelloImpl2(String message) {
		this.message = message;
	}

	@Override
	public void sayHello() {
		System.out.println(message);
	}

}
 package org.spring.chapter2.helloworld;
public class HelloApiStaticFactory {

	public static HelloApi newInstance(String message){
		return new HelloImpl2(message);
	}
}

 <?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:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
	     				http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
						http://www.springframework.org/schema/context           
     					http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	<!-- id 表示你这个组件的名字,class表示组件类 -->
	<bean id="bean3" class="org.spring.chapter2.helloworld.HelloApiStaticFactory" factory-method="newInstance">
	  <constructor-arg index="0" value="Hello Spring"></constructor-arg>
	</bean>
</beans>

 @Test

	public void testStaticFactory(){
		ApplicationContext context = new ClassPathXmlApplicationContext("org/spring/chapter2/helloworld/helloworld3.xml");
		HelloApi bean3 = context.getBean("bean3",HelloApi.class);
		bean3.sayHello();
	}
 
分享到:
评论

相关推荐

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

    本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念。Spring Bean是Spring IoC容器管理的对象,这些对象的生命周期、依赖关系以及初始化行为由...

    Spring 实例化Bean的三种方式

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

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

    静态工厂方法实例化是指使用静态工厂方法来实例化Bean。这种方法需要创建一个静态工厂类,该类提供一个静态方法用于实例化Bean。在上面的示例代码中,我们定义了一个HelloWorldFactory类,它提供了一个静态方法...

    SSH笔记-静态/实例工厂方法配置bean

    这种方式下,Spring并不直接实例化目标类,而是调用预先定义好的静态工厂方法。配置如下: ```xml &lt;bean id="exampleBean" class="com.example.FactoryClass" factory-method="createInstance"/&gt; ``` 在这里,`...

    JavaEE spring静态工厂创建实例

    在Spring中,我们可以配置Bean定义来指定使用静态工厂方法创建对象。这需要在配置文件(如XML)中提供以下信息: 1. `class`属性:虽然这个属性通常用于指定类的全限定名,但在使用静态工厂时,它实际上是用于指定...

    Spring的实例工厂方法和静态工厂方法实例代码

    Spring 框架中提供了两种方式来实例化 bean,分别是静态工厂方法和实例工厂方法。下面我们将详细介绍这两种方法的实现和使用。 一、静态工厂方法 静态工厂方法是通过调用静态方法来返回 bean 实例的方式。这种方式...

    Spring项目bean实例化代码

    **静态工厂方法实例化**则涉及到使用类的静态方法来创建Bean。在配置中,我们需要提供`factory-bean`(工厂Bean的ID)和`factory-method`(工厂方法名)。例如: ```xml &lt;bean id="exampleBean" factory-bean=...

    Spring实战之使用静态工厂方法创建Bean操作示例

    在Spring框架中,静态工厂方法是一种创建Bean对象的方式,它允许我们通过调用类中的静态方法来实例化对象,而不是直接使用new关键字。这种方式在某些特定场景下非常有用,例如当我们需要控制对象的创建过程或者对象...

    SpingIOC注入实例化bean

    - **工厂方法**:可以定义一个静态或非静态工厂方法,Spring调用这个方法来实例化bean。 3. **依赖注入(DI)** Spring的依赖注入允许bean之间通过接口而非具体实现进行耦合,提高了代码的可测试性和可维护性。...

    Spring Bean实例化实现过程解析

    静态工厂方法实例化是指通过静态工厂方法来实例化 Bean。这意味着,我们可以通过静态工厂方法来创建 Bean 实例,而不是通过容器来实例化 Bean。 例如,在 com.itheima.instance.static_factory 包中,我们定义了一...

    Spring工厂方法创建(实例化)bean实例代码

    Spring工厂方法创建(实例化)bean实例代码 Spring框架中提供了多种方式来创建bean实例,包括通过构造器、静态工厂方法和实例工厂方法等。这种方式可以让开发者更好地控制bean的创建过程,实现更多的自定义需求。 ...

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

    6. **带参数的构造函数**:尝试将构造函数改为接受一个参数,运行程序时会抛出异常,表明Spring默认使用无参构造函数来实例化Bean。 当遇到异常时,如`NoSuchMethodException`,我们需要分析错误信息。错误信息通常...

    基于java的企业级应用开发:Bean的实例化.ppt

    第二种实例化方式是**静态工厂方式实例化**。这种方式需要我们创建一个包含静态方法的工厂类,该方法用于返回Bean实例。在配置文件中,除了指定`class`属性外,还需要添加`factory-method`属性,值为工厂类中创建...

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

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

    Spring实例化bean的方式代码详解

    在这里,`OrderFactory`类包含一个静态方法`createOrder()`,Spring会调用这个方法来实例化bean。 3. **使用实例化工厂方法实现实例化** 实例化工厂方法与静态工厂方法类似,但不同之处在于它需要一个已经存在的...

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

    4. **静态工厂方法或Singleton作用域**:如果使用静态工厂方法创建Bean,且未正确配置单例模式,那么每次请求都会创建新的Bean实例。对于Singleton作用域的Bean,Spring保证在整个容器生命周期内只有一个实例,如果...

    Spring高级应用,Bean讲解

    Bean 的实例化有三种方式,分别为构造器实例化、静态工厂方法实例化和实例工厂方法实例化(其中最常用的是构造器实例化)。 构造器实例化 构造器实例化是指 Spring 容器通过 Bean 对应的类中默认的构造函数来实例...

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

    总结,Spring提供了多种实例化和依赖注入Bean的方式,以满足不同场景的需求。setter方法简单易用,适用于大部分情况;构造函数方式在创建Bean时就完成依赖注入,适合对象初始化时就需要依赖的场景;静态工厂和实例...

    Spring bean 管理

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

    spring框架技术+第2天+xmind思维导图

    bean实例化三种方式:用构造器来实例化 、使用 静态工厂方法实例化 、使用实例工厂方法实例化 。总结,我们会选择第一种方式,因为spring的存在就是要消除工厂模式,因为工厂本身就会在每次调用时new出对象,只是把...

Global site tag (gtag.js) - Google Analytics