In this chapter, we took a detailed look at Spring's support for building applications using traditional J2EE technologies. We looked at how Spring can simplify the use of JNDI in your application, and in particular, how Spring acts as an adapter layer between resources held in JNDI and beans managed by Spring.
In the EJB section, we examined Spring's EJB support class for building both stateless and stateful session beans. In addition, we analyzed how Spring's EJB classes sit on top of the JNDI support classes and the AOP framework to provide proxy-based access to stateless session beans.
In the final part of this chapter, we explored how to use Spring to simplify JMS-based applications and how Spring's JMS support is integrated into the PlatformTransactionManager architecture. As part of the coverage of JMS, we peeked inside the Spring sandbox to see what JMS-related features are coming up in Spring 1.2; in particular, we discussed support for the asynchronous send.
In the next chapter, we talk about how Spring integrates with the popular Quartz scheduling engine to provide job scheduling capabilities to your application.