Spring One Day 3
I attended the agile architecture and patterns session in the morning and then the SPEL (spring expression language) by Craig Walls. SPEL surely provides some cool convenience features. Currently I am in Costin Leau and Mark Pollack’s Java EE 6 and Spring session.
Java EE 6 web profile:
-
Servlet, JSP, JSTL, JSF, JTA, JPA, EJB 3.1 Lite, JSR-299, JSR-330.
It is not affecting spring as a framework since it uses whatever is available at runtime.
Servlet 3.0:
-
Support for auto-deployment – minimizing amount of web.xml and auto-deploying Spring web context.
Support for Comet endpoints – asynchronous HTTP request handling. Spring MVC support for Comet requests as a special request/response type. Spring support is not concrete yet.
JSR-303, the bean validation spec is integrated into spring. Validation can be applied to any spring bean.
EJB 3.1
-
Introduces singleton beans with declarative concurrency model.
Startup/shutdown call backs
Asynchronous method invocation
Timer service
EJBs within war files
Embeddable EJB container — API to execute EJBs in Java SE.
Declarative transaction provider.
EJB 3.1 Lite
-
subset of the full EJB API
Used in EE6 web profile
No remote EJBs etc..
Value of EJB 3.1 Singletons
Long overdue: statup/shutdown hooks.
Finally an EJB session bean without pooling. No pooling overhead imposed anymore.
EJB 3.1 from a Spring perspective
EJBs remained tied to a dedicated EE6 container. But container can be embedded and added additional deployment model – .war file.
Easy access to EJB session beans from within Spring.
Spring Framework != EJB (Lite) container.
Just influences some Spring features – Spring 3.0 @Async etc.
EJB 3.1 singletons resemble Spring singleton beans with different concurrency defaults.
JSR-330 is an “extensible DI API to maximize testability and maintainability of Java code”. JSR-330 requires only Java SE and not dependent on any external containers. Provides a common understanding of injection semantics. This spec is already supported in Spring 3.0.
JSR-299: Initially it was web beans. Glue between JSF and EJB and hence the web name.
Bottom line is that Spring is actively tracking Java EE 6.