Sep 14, 2018

If you understand the concepts of distributed computing and know the challenges, Java EE becomes suddenly a breeze.

Instead of coding, you can mostly rely on the provided defaults or configure the desired behavior declaratively. 

You can start without Java EE or other similar framework like .NET, Spring, Guice, or even systems such as CICS, but you will have to implement the concurrency, transactions, locking, sessions on your own. It’s likely that the end result will be more complex, than a full-blown Java EE solution.

You will gain with Java EE vendor independence. Your business logic will be clearly separated from infrastructure, which can be provided by certified application servers and even the Spring framework itself.