Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. @Bean
  2. BeanPostProcessor delegateForFoo() {
  3. return new WrappingBeanPostProcessor<>(Foo.class, original -> new MyCustomFoo(original));
  4. }
  5.  
  6. public class WrappingBeanPostProcessor<T> implements BeanPostProcessor {
  7.  
  8. private final Class<T> type;
  9. private final UnaryOperator<T> beanCreator;
  10.  
  11. private WrappingBeanPostProcessor(Class<T> type, UnaryOperator<T> beanCreator) {
  12. this.type = type;
  13. this.beanCreator = beanCreator;
  14. }
  15.  
  16. @Override
  17. public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
  18.  
  19. if (type.isInstance(bean)) {
  20. return beanCreator.apply((T) bean);
  21. }
  22. return bean;
  23. }
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement