A `BeanPostProcessor` is a hook that can modify or wrap beans before/after initialization. Spring uses it for features like AOP proxies, `@Async`, and `@Transactional`. You’d use it for cross-cutting behavior, but it’s powerful and easy to overuse.