Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Bean
- BeanPostProcessor delegateForFoo() {
- return new WrappingBeanPostProcessor<>(Foo.class, original -> new MyCustomFoo(original));
- }
- public class WrappingBeanPostProcessor<T> implements BeanPostProcessor {
- private final Class<T> type;
- private final UnaryOperator<T> beanCreator;
- private WrappingBeanPostProcessor(Class<T> type, UnaryOperator<T> beanCreator) {
- this.type = type;
- this.beanCreator = beanCreator;
- }
- @Override
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- if (type.isInstance(bean)) {
- return beanCreator.apply((T) bean);
- }
- return bean;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement