Hacker News new | ask | show | jobs
by rhapsodic 3027 days ago
This should be titled "Acegi/Spring/Hibernate" call stack. And none of those technologies are needed to build a JEE webapp.
1 comments

While that's entirely true, the glueing of those frameworks together is very common in the Enterprise Java development space especially around 2006 when this was taken.

I'm a big fan of the JVM and the Java ecosystem but in many ways the JVM ecosystem is split into two worlds: frameworks or libraries. This would be an example of a framework heavy development model where god knows what is going on between the outside world, your biz logic and the database calls.

Man the java era was seriously seriously wrong[1]. IMO it's only there because people invested so much, they'll never cut their losses and stay in denial for one or two decades.

[1] java 8 makes thinks bearable, but even then you feel like sculpting chapter 1 lisp/haskell idioms in granite with a spoon.

> common in the Enterprise Java development space especially around 2006

Can you mention which frameworks and glues are common today ?

I feel like I get pretty far with just https://javalin.io/ or http://sparkjava.com/. They're pretty similar but Javalin is being built by a maintainer of Spark and inherits many of the lessons learned from it.

These are basically thin wrappers on Jetty.

SQL: Mybatis or JDBI.

SQL Migrations: Flyway

JSON: Jackson, usually

Redis: Jedis

Spring Boot, but that includes Spring Security (was Acegi) and Spring MVC. Spring Data (JPA) has taken over from Hibernate.
You can get a long way with just Spark: https://github.com/perwendel/spark
Official website, for those wondering

http://sparkjava.com/

http://vertx.io/ is extremely powerful and relatively popular. We've used in production for years. Note that it is a non-blocking framework so there is a bit of a learning curve coming from e.g. Java EE.
Acegi/Spring/Hibernate :>
dropwizard.io
+1 for dropwizard; Spring is too big, dropwizard is just right. I've always preferred JDBI over JPA too.