private void initialize(Object bean, Class<?> beanClass) { Set<Method> initializeMethods = BeanFactoryUtils.getBeanMethods(beanClass, PostConstruct.class); if (initializeMethods.isEmpty()) { return; } for (Method initializeMethod : initializeMethods) { log.debug("@PostConstruct Initialize Method : {}", initializeMethod); BeanFactoryUtils.invokeMethod( initializeMethod, bean, populateArguments(initializeMethod.getParameterTypes())); } }
private Optional<Object> createAnnotatedBean(BeanDefinition beanDefinition) { AnnotatedBeanDefinition abd = (AnnotatedBeanDefinition) beanDefinition; Method method = abd.getMethod(); Object[] args = populateArguments(method.getParameterTypes()); return BeanFactoryUtils.invokeMethod(method, getBean(method.getDeclaringClass()), args); }