Pro Spring Batch
- 7h 35m
- Michael T. Minella
- Apress
- 2011
Since its release, Spring Framework has transformed virtually every aspect of Java development including web applications, security, aspect-oriented programming, persistence, and messaging. Spring Batch, one of its newer additions, now brings the same familiar Spring idioms to batch processing. Spring Batch addresses the needs of any batch process, from the complex calculations performed in the biggest financial institutions to simple data migrations that occur with many software development projects.
Pro Spring Batch is intended to answer three questions:
- What? What is batch processing? What does it entail? What makes it different from the other applications we are developing? What are the challenges inherent in the development of a batch process?
- Why? Why do batch processing? Why can’t we just process things as we get them? Why do we do batch processing differently than the web applications that we currently work on?
- How? How to implement a robust, scalable, distributed batch processing system using open-source frameworks
Pro Spring Batch gives concrete examples of how each piece of functionality is used and why it would be used in a real-world application. This includes providing tips that the "school of hard knocks" has taught author Michael Minella during his experience with Spring Batch. Pro Spring Batch includes examples of I/O options that are not mentioned in the official user’s guide, as well as performance tips on things like how to limit the impact of maintaining the state of your jobs.
The author also walks you through, from end to end, the design and implementation of a batch process based upon a theoretical real-world example. This includes basic project setup, implementation, testing, tuning and scaling for large volumes.
What you’ll learn
- Batch concepts and how they relate to the Spring Batch framework
- How to use declarative I/O using the Spring Batch readers/writers
- Data integrity techniques used by Spring Batch, including transactions and job state/restartability
- How to scale batch jobs via distributed batch processing
- How to handle testing batch processes (Unit and functional)
About the Author
Michael T. Minella is a software engineer, teacher, and author with over a decade of enterprise development experience using commercial and open source technologies. He is a software engineer for Trustwave and an instructor at DePaul University. He wrote the popular Refcard JUnit and EasyMock, was the technical reviewer for Struts 2 Web Application Development by Dave Newton, and maintains a popular blog on open source technologies.
Michael's technical background runs the gambit. From the first programming language he learned (mainframe Assembler) to the languages he uses and teaches now (Java, JavaScript, Flex/ActionScript, and so on) he has been all over the map. His passions include quality software development, learning new things, and sharing knowledge with others through both mentoring and formal teaching. When he's not in front of a computer, Michael enjoys spending time with his family and friends as well as pursuing other hobbies including woodworking and reading.
You can follow Michael on Twitter at twitter.com/michaelminella or read his blog at michaelminella.com.
In this Book
-
Batch and Spring
-
Spring Batch 101
-
Sample Job
-
Understanding Jobs and Steps
-
Job Repository and Metadata
-
Running a Job
-
Readers
-
Item Processors
-
Item Writers
-
Sample Application
-
Scaling and Tuning
-
Testing Batch Processes