intermediateSpring Boot Internals

What's the difference between BeanFactoryPostProcessor and BeanPostProcessor?

A BeanFactoryPostProcessor runs BEFORE any bean is instantiated, operating on bean DEFINITIONS (metadata) — PropertySourcesPlaceholderConfigurer, which resolves ${...} placeholders, is a classic example. A BeanPostProcessor runs AFTER each bean is instantiated, wrapping its initialization via postProcessBeforeInitialization()/postProcessAfterInitialization() — this is exactly how AOP proxies for @Transactional and @Cacheable get created, by replacing the raw bean instance with a proxy during this phase.

This is a Pro question

Sign in, then upgrade to Pro or Power to unlock this question and the full Interview Prep bank.

What's the difference between BeanFactoryPostProcessor and BeanPostProcessor?

Next Step

Continue to What are the main HTTP methods used in REST APIs, and what does each represent?← Back to all Spring Boot & Microservices questions