One App, Every Proxy Case: Where Your CDI Proxies Actually Come From
A normal-scoped bean is never handed out directly — a generated subclass is. Where it comes from depends on one thing only, the origin of the type being proxied: your own code, a modular dependency, a jar with no module-info, or a build with no class loader to help it. One example application carries all four cases, and this walks through each — what is generated as source, what as bytecode, and why.
Read more