WEB4J is a minimalist, opinionated, full-stack web framework for Java. It's "Java productivity without the pain.... because of [WEB4J's] deep simplicity, it allows markedly faster development of applications," writes John O'Hanley, the author of the framework.
According to the web site, WEB4J:
- Embraces convention over configuration (similar to Rails)
- Treats the data, not the code, as king
- Doesn't force developers to learn new ways of doing the same thing
- Doesn't rely on JavaScript, custom XML or annotations, or object-relational mapping
- Doesn't impose thread-safety constraints on your classes
- Enables implementation of forms in plain HTML
One of WEB4J's most intriguing features is that it allows placement of SQL in plain text files external to the code. The SQL is then referenced in the code using special objects. This makes DAO (Data Access Object) classes very compact.
WEB4J is small, only 88 classes in size compared to the 346 classes in Rails, 720 in Struts, and 2400+ in Spring. John claims that it takes a much shorter time to learn WEB4J than other frameworks.
The web site is very up front about the weaknesses of WEB4J, which include:
- No library of user interface widgets
- No built-in support for AJAX, Web Services, or Dependency Injection
- Supports JSP/JSTL, but no alternative markup libraries like Velocity
- Backwards compatibility with previous versions of the framework is problematic
A humorous YouTube video promoting the framework surfaced last year. The video portrays two programmers in an enterprise setting who discover the framework and use it to escape from the pain of their traditional J2EE projects.
WEB4J is open source, released under the BSD license, and includes a sample project in the distrubution.