Example usage for org.springframework.beans.factory.support RootBeanDefinition cloneBeanDefinition

List of usage examples for org.springframework.beans.factory.support RootBeanDefinition cloneBeanDefinition

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support RootBeanDefinition cloneBeanDefinition.

Prototype

@Override
    public RootBeanDefinition cloneBeanDefinition() 

Source Link

Usage

From source file:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.java

@Override
public Object configureBean(Object existingBean, String beanName) throws BeansException {
    markBeanAsCreated(beanName);//from  w  w  w . jav a2s  .c  om
    BeanDefinition mbd = getMergedBeanDefinition(beanName);
    RootBeanDefinition bd = null;
    if (mbd instanceof RootBeanDefinition) {
        RootBeanDefinition rbd = (RootBeanDefinition) mbd;
        bd = (rbd.isPrototype() ? rbd : rbd.cloneBeanDefinition());
    }
    if (bd == null) {
        bd = new RootBeanDefinition(mbd);
    }
    if (!bd.isPrototype()) {
        bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
        bd.allowCaching = ClassUtils.isCacheSafe(ClassUtils.getUserClass(existingBean), getBeanClassLoader());
    }
    BeanWrapper bw = new BeanWrapperImpl(existingBean);
    initBeanWrapper(bw);
    populateBean(beanName, bd, bw);
    return initializeBean(beanName, existingBean, bd);
}