Let's look now at some of the many features of Spring beyond the core container. These include useful features for implementing enterprise applications — part of Spring's overall service abstraction — and support for implementing objects in languages other than Java.
In this chapter we will focus on the following areas:
Messaging: Spring provides support for sending JMS messages.
Scheduling: Spring provides a scheduling abstraction, including integration with the popular Quartz scheduler.
Mail: Spring provides an abstraction for sending email that simplifies use of JavaMail and makes application code easier to test.
Scripting: Spring allows you to implement objects in scripting languages such as Groovy and Java. Scripted objects enjoy full IoC and AOP support, and can be reloaded without affecting objects that depend on them.