`
esffor
  • 浏览: 1367499 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用FactoryBean接口简化工厂Bean开发

阅读更多

使用FactoryBean接口简化工厂Bean开发,但是,一个工厂只能有一类产品

 

public class PersonFactory implements FactoryBean
...{
    Person p 
= null
                      
//返回产品
    public Object getObject() throws Exception
    
...{
        
if (p == null)
        
...{
            p 
= new Chinese();
        }

        
return p;
    }

                     
//返回产品类型
    public Class getObjectType()  
    
...{
        
return Chinese.class;
    }

                   
//产生的实例是否为单态
    public boolean isSingleton() 
    
...{
        
return true;
    }

}


配置文件:

 


<beans>

  
  
<bean id="beanfactory" class="Bean.Beanfactory.PersonFactory">
  
</bean>
</beans>


这样,根据beanfactory获得的bean不再是PersonFactory,而是其产品Chinese,如果需要得到PersonFactory实例,有另外一种调用方式,如下:

 

public static void main(String[] args) throws Exception ...{
        
        String path
=new Test().getClass().getResource("/").getPath();
        String realpath
=path.substring(1, path.length());
        ApplicationContext context
=new FileSystemXmlApplicationContext(realpath+"/beanfactory.xml");

        Chinese p
=(Chinese)context.getBean("beanfactory");
        System.out.println(context.getBean(
"&beanfactory"));
        System.out.println(p);
        
 }


其中System.out.println(context.getBean(
"&beanfactory"));返回工厂的实例


运行结果:

Bean.Beanfactory.PersonFactory@ca470
Bean.Beanfactory.Chinese@1ffc686



分享到:
评论

相关推荐

    SSH笔记-通过实现FactoryBean接口来创建 Bean

    在Spring框架中,`FactoryBean`接口是一个非常重要的组件,它允许我们自定义Bean的创建逻辑,这在处理复杂对象的实例化或者需要特定初始化步骤时尤其有用。本笔记将详细探讨如何通过实现`FactoryBean`接口来创建Bean...

    FactoryBean代码最简实现

    本篇我们将深入探讨`FactoryBean`的最简实现及其在Spring配置文件中的使用,帮助你理解其实例化过程。 `FactoryBean`是Spring框架提供的一种扩展点,它允许我们自定义对象的创建逻辑,而不仅仅是简单的通过`new`...

    spring学习----工厂Bean

    工厂Bean是实现了`org.springframework.beans.factory.FactoryBean`接口的类。这个接口定义了两个核心方法:`getObject()`用于返回实际的业务对象,`isSingleton()`则指定返回的对象是否为单例。当Spring容器遇到一...

    Spring中BeanFactory与FactoryBean接口的区别详解

    **FactoryBean接口**则是一种特殊的Bean,它不是用来直接创建对象的,而是用来创建Bean的Bean。当你需要在Spring容器中创建更复杂、有特定初始化逻辑的对象时,可以使用FactoryBean。FactoryBean的实例本身就是一个...

    spring的FactoryBean增强我们的目标对象.rar

    当我们声明一个bean为`FactoryBean`类型时,Spring容器在实例化bean时会调用`FactoryBean`的相关方法来获取实际的对象,而不是直接使用默认的构造函数创建。这给我们提供了一个灵活的方式来控制对象的创建过程,包括...

    简单了解Spring中BeanFactory与FactoryBean的区别

    在实际应用中,我们通常使用BeanFactory来管理Bean的生命周期,而使用FactoryBean来生成其他Bean的实例。例如,在Spring MVC中,我们可以使用BeanFactory来管理Controller Bean的生命周期,而使用FactoryBean来生成...

    spring如何通过FactoryBean配置Bean

    在本文中,我们将通过一个示例来介绍如何使用 FactoryBean 配置 Bean。 首先,我们定义了一个 Car 类,该类具有名称和价格两个属性: ```java public class Car { private String name; private double price; /...

    Spring中的FactoryBean.rar

    综上所述,"Spring中的FactoryBean.rar"文件所涵盖的内容可能涉及FactoryBean的接口定义、应用场景、使用方法以及如何自定义FactoryBean等方面。通过学习这部分内容,开发者能够更好地理解Spring IoC容器的工作原理...

    spring源码解析之FactoryBean相关测试代码demo

    在Spring框架中,`FactoryBean`是一个非常关键的接口,它允许我们自定义对象的创建方式,这在处理复杂依赖关系或需要特殊初始化逻辑时尤为有用。本篇将通过一个测试代码示例来深入解析`FactoryBean`的工作原理及其在...

    68-BeanFactory与FactoryBean1

    在 Spring 中,FactoryBean 是一个特殊的 Bean,它实现了 FactoryBean 接口,该接口提供了 getObject() 方法来返回实例化后的对象。当我们在配置文件中配置了 FactoryBean 时,getBean() 方法返回的对象实际上是 ...

    使用 FactoryBean结合Jmock实现动态Mock类的注入

    在Java开发中,`FactoryBean`是Spring框架提供的一种特殊类型的bean,用于在Spring容器中创建其他bean。它是一个接口,允许我们自定义bean的实例化逻辑,这在某些复杂场景下非常有用,比如动态代理、模拟对象的创建...

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    而传统的`factoryBean`则是通过实现`FactoryBean`接口来创建bean,这提供了更大的灵活性,但使用起来相对复杂。 结合`@Service`注解,它是Spring Data JPA和其他服务层组件常用的注解。`@Service`通常用于标记业务...

    使用FactoryBean结合Jmock实现动态Mock类的注入

    FactoryBean:我们在使用Spring过程中一般都是使用基本的的配置,在Spring配置中,还有一种特殊的FactoryBean,这种bean,可以动态的帮我们创建我们需要的bean,如: ProxyFactoryBean,通用的用于获得AOP代理的工厂bean。...

    factory-bean-demo.7z

    在Spring框架中,`FactoryBean`是一个非常重要的接口,它允许开发者自定义对象的创建逻辑,从而扩展Spring容器的功能。`FactoryBean`是Spring I/O体系中的一个关键组件,尤其在处理复杂对象创建或者需要控制对象初始...

    spring中FactoryBean中的getObject()方法实例解析

    下面是一个使用 FactoryBean 创建 Car Bean 的示例代码: ```java public class CarFactoryBean implements FactoryBean { private String carInfo; public Stirng getCarInfo() { return carInfo; } public...

    Spring实例化Bean顺序

    在Spring框架中,Bean的实例化顺序是一个关键概念,它...在实际开发中,应谨慎处理Bean的实例化顺序,以避免不必要的初始化问题和依赖循环。通过合理利用Spring提供的工具和机制,可以更好地控制和管理Bean的生命周期。

    使用ImportBeanDefinitionRegistrar、JDK代理、FactoryBean模拟mybatis原理.zip

    通常,当我们需要控制bean的创建过程或者bean的类型与返回给容器的类型不同时,可以使用`FactoryBean`。在MyBatis-Spring集成中,`SqlSessionFactoryBean`就是一个典型的`FactoryBean`,它负责创建`...

    09-IoC配置-静态工厂与实例工厂创建bean

    Spring IOC 04 配置通过静态工厂方法创建的bean、实例工厂创建的bean、FactoryBean (1)bean的创建默认就是框架利用反射new出来的bean实例; (2)工厂模式:工厂帮我们创建对象,有一个专门帮我们创建对象的类,这...

    FactoryBean.zip

    在"spring04"这个文件夹中,可能包含了一个使用`FactoryBean`创建自定义数据源的例子,或者是展示了如何通过`FactoryBean`创建其他复杂类型的bean。文件内容可能包括了XML配置文件、Java配置类以及相关的测试代码。...

    Spring BeanFactory和FactoryBean区别解析

    相比之下,FactoryBean是一个特殊的bean,它可以返回bean的实例的工厂bean,通过实现该接口可以对bean进行一些额外的操作,例如根据不同的配置类型返回不同类型的bean,简化xml配置等。在使用上也有些特殊,...

Global site tag (gtag.js) - Google Analytics