首先通过静态内部类创建一个单例对象
package com.spring.test.factorymethod; public class Stage { public void perform(){ System.out.println("演出开始..."); } private Stage(){ } private static class StageSingletonHolder{ static Stage instance = new Stage(); } public static Stage getInstance(){ return StageSingletonHolder.instance; } }
在spring配置文件中指定加载的方法getInstance
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="theStage" class="com.spring.test.factorymethod.Stage" factory-method="getInstance"></bean> </beans>
通过应用上下文调用bean获取实例 当然也可以通过factory类创建其他类只要你知道要强转为什么类就行
package com.spring.test.factorymethod; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class test { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); Stage stage = ((Stage)ctx.getBean("theStage"));//.getInstance(); stage.perform(); } }
相关推荐
- 如果不想通过默认构造函数创建Bean,可以使用`factory-bean`和`factory-method`来指定工厂Bean和工厂方法。 8. ** Profiles**: - Spring 3.1 引入了Profiles的概念,允许根据不同的环境配置不同的Bean。例如:...
在Spring配置文件中,我们需要定义一个工厂bean,然后指定该工厂bean的`factory-bean`属性,以及工厂bean中用于创建目标bean的方法,即`factory-method`属性。下面是一个简单的例子: ```xml <bean id="myFactory...
总的来说,工厂Bean是Spring框架中的一个重要概念,它提供了对Bean创建过程的定制,使得我们可以处理那些需要特殊处理的对象。通过理解和熟练使用FactoryBean,可以极大地增强Spring应用程序的灵活性和可扩展性。
在Spring框架中,`BeanFactory`是工厂模式的一种实现,它负责管理容器中的Bean的生命周期与依赖注入。了解`BeanFactory`及其相关接口的功能对于掌握Spring的核心原理至关重要。 #### 二、`BeanFactory`接口的关键...
- **factory-bean/factory-method属性**:通过工厂方法创建Bean。`factory-bean`属性指向工厂Bean,而`factory-method`属性指定工厂方法。 - **depends-on属性**:指定Bean的依赖关系,确保某些Bean在其他Bean之前...
在XML配置中,使用`factory-bean`和`factory-method`属性指定FactoryBean和创建对象的方法。 这些不同的创建对象方式在不同场景下各有优势。XML配置适合传统应用,注解配置简化了配置且易于理解和维护。Java配置...
第五步,“tiny-spring-step-5-inject-bean-to-bean.zip”,讲解了Bean之间的依赖注入,这是Spring框架实现组件化的重要手段。你将学习如何通过容器自动管理Bean之间的依赖关系,实现组件间的协作。 接下来,“tiny...
如果Bean定义中有`factory-method`属性,那么Spring会调用指定的方法来实例化Bean,而不是使用默认的构造器。 2. **属性注入**:实例化后,Spring会根据Bean定义中的`property`或`ref`属性为Bean注入依赖。这包括了...
在Spring配置文件中,可以通过`<bean>`标签的`constructor-arg`子标签来指定构造函数参数,Spring会根据这些参数调用相应的构造函数来创建Bean实例。例如: ```xml <bean id="exampleBean" class=...
本文将详细介绍在Spring中利用XML配置创建对象的三种主要方法:单例(Singleton)创建、原型(Prototype)创建和工厂方法(Factory Method)创建。 1. 单例(Singleton)创建: Spring默认的bean生命周期管理是...
上面的配置中,首先定义了一个 `InstanceObjectsFactory` 对象,然后通过 `factory-bean` 指定了工厂对象的 ID,通过 `factory-method` 指定了工厂方法的名称。当 Spring.NET 容器需要创建 `instanceCreatedObject` ...
2. **工厂方法配置**:对于非静态工厂类,可以通过`factory-bean`指定工厂对象,`factory-method`指定工厂方法,如`clientService2`。对于静态工厂类,可以直接在`class`属性中指定工厂方法,如`clientService`。 3...
11. `factory-bean` 和 `factory-method` 属性:当Bean需要通过工厂方法创建时,`factory-bean`指定工厂Bean的名称,`factory-method`指定工厂方法。 12. `depends-on` 属性:在某些特殊情况下,如需要确保某个Bean...
- **`factory-bean`和`factory-method`属性**:通过指定一个Bean工厂和一个工厂方法来创建Bean。`factory-bean`属性指向一个已经定义的Bean,而`factory-method`则指明了工厂Bean中的哪个方法用于创建目标Bean。 -...
首先,静态工厂方法配置Bean是通过调用类中静态工厂方法来创建对象的方式。这种方式下,Spring并不直接实例化目标类,而是调用预先定义好的静态工厂方法。配置如下: ```xml <bean id="exampleBean" class=...
通过这种方式,Spring容器会根据给定的类名自动创建一个Bean实例。 2. **使用静态工厂方法实例化** ```xml <bean id="exampleBean" class="example.ExampleBean" factory-method="createInstance"/> ``` 在...
动态工厂是一种创建对象的方式,它不是通过new关键字直接创建,而是通过工厂方法。Spring框架支持两种类型的工厂:静态工厂和实例工厂。静态工厂方法是属于类的静态方法,不需要先创建工厂实例就能调用,而实例工厂...
<bean id="logger" class="org.slf4j.LoggerFactory" factory-method="getLogger"> <constructor-arg value="com.example.MyCustomObject"/> </bean> ``` 3. **获取Bean**:在我们的应用程序中,我们可以使用`...
在传统的编程中,我们通常使用`new`关键字创建对象,而IOC使得Spring容器负责创建和管理这些对象,从而降低了对象之间的耦合度。例如,在`Bean.xml`配置文件中,我们定义了`userService`和`userDao`的bean,Spring会...
在Spring框架中,实例工厂注入是一种创建对象的方式,它允许我们通过自定义的工厂方法来控制对象的实例化过程。这种方式对于那些初始化过程复杂或者需要特殊处理的对象特别有用。下面我们将详细探讨Spring中的实例...