Java makes plugin-like scenarios very hard. The kind of thing you&#x27;d do with a typeclass in languages that have them. There&#x27;s OSGi (the horror, the horror) which maybe-kinda-sorta-works, or there&#x27;s the SPI where you put the class name in a .service file (which will then be instantiated though... reflection). When those are the alternatives, DI frameworks aren&#x27;t so bad.