public Object getBean() { Object previousBean = parentBeanCreator.getBean(); Object processed = null; switch (when) { case Before: processed = parentBeanProcessor.beforeInit(previousBean, beanName, parentBeanCreator, beanData); break; case After: processed = parentBeanProcessor.afterInit(previousBean, beanName, parentBeanCreator, beanData); break; } return processed; } }
public Object getBean() { Object previousBean = parentBeanCreator.getBean(); Object processed = null; switch (when) { case Before: processed = parentBeanProcessor.beforeInit(previousBean, beanName, parentBeanCreator, beanData); break; case After: processed = parentBeanProcessor.afterInit(previousBean, beanName, parentBeanCreator, beanData); break; } return processed; } }
private Object runBeanProcPreInit(Object obj) { String beanName = getName(); BeanMetadata beanData = (BeanMetadata) blueprintContainer .getComponentDefinitionRegistry().getComponentDefinition(beanName); List<BeanProcessor> processors = blueprintContainer.getProcessors(BeanProcessor.class); //The start link of the chain, that provides the //original, unprocessed bean to the head of the chain. BeanProcessor.BeanCreator initialBeanCreator = new BeanProcessor.BeanCreator() { public Object getBean() { Object obj = getInstance(); //getinit, getdestroy, addpartial object don't need calling again. //however, property injection does. setProperties(obj); return obj; } }; BeanProcessor.BeanCreator currentCreator = initialBeanCreator; for (BeanProcessor processor : processors) { obj = processor.beforeInit(obj, getName(), currentCreator, beanData); currentCreator = new BeanCreatorChain(currentCreator, processor, beanData, beanName, BeanCreatorChain.ChainType.Before); } return obj; }
private Object runBeanProcPreInit(Object obj) { String beanName = getName(); BeanMetadata beanData = (BeanMetadata) blueprintContainer .getComponentDefinitionRegistry().getComponentDefinition(beanName); List<BeanProcessor> processors = blueprintContainer.getProcessors(BeanProcessor.class); //The start link of the chain, that provides the //original, unprocessed bean to the head of the chain. BeanProcessor.BeanCreator initialBeanCreator = new BeanProcessor.BeanCreator() { public Object getBean() { Object obj = getInstance(); //getinit, getdestroy, addpartial object don't need calling again. //however, property injection does. setProperties(obj); return obj; } }; BeanProcessor.BeanCreator currentCreator = initialBeanCreator; for (BeanProcessor processor : processors) { obj = processor.beforeInit(obj, getName(), currentCreator, beanData); currentCreator = new BeanCreatorChain(currentCreator, processor, beanData, beanName, BeanCreatorChain.ChainType.Before); } return obj; }