A practical, hands-on guide for Java developers migrating from Java EE/EJB to Spring Boot. The repository contains two complete e-commerce applications — one built with the legacy stack (Java 8, EJB3, WildFly) and the other rebuilt from scratch with modern tools (Java 17, Spring Boot 3.5) — allowing direct comparison of architecture, patterns, and code.
What’s Inside
- Legacy Application — Full e-commerce app with Java 8, EJB3, WildFly 26, and Oracle XE 21c
- Modern Application — Same functionality rebuilt with Java 17, Spring Boot 3.5, Lombok, and Oracle XE 21c
- Architecture Diagrams — Visual comparisons of both architectures and the migration flow
- Docker Setup — Both apps fully containerized for easy local testing
E-commerce Modules
Both implementations cover the same business domain:
- Customer Management
- Product Catalog
- Order Processing
- Payment Processing
- JMS-based Notifications
Key Migration Changes
| Area | Legacy (EJB) | Modern (Spring Boot) |
|---|---|---|
| Namespace | javax.* | jakarta.* |
| DI | @EJB / @Inject | Constructor injection |
| Persistence | DAO + EntityManager | Spring Data JPA |
| REST API | @WebServlet | @RestController |
| Transactions | @TransactionAttribute (CMT) | @Transactional |
| Messaging | @MessageDriven | @JmsListener |
| Configuration | XML descriptors | YAML + @Configuration |
| Deployment | WAR on WildFly | Executable JAR |
Tech Stack
- Java 8 → Java 17 — Language migration
- EJB3 → Spring Boot 3.5 — Framework migration
- WildFly → Embedded Tomcat — Server migration
- Oracle XE 21c — Shared database
- Docker & Docker Compose — Containerized deployment
- Maven — Build tool

