Greater Atlanta Software Symposium
May 16 - 18, 2008 - Atlanta, GA
View the event details here ».
Spring Integration Lead
Mark Fisher is an engineer within the SpringSource division of VMware and lead of the Spring Integration project. He is also a committer on the core Spring Framework and the Spring BlazeDS Integration project. Mark has provided consulting services for clients across numerous industries, and he has trained hundreds of developers how to use the Spring Framework and related projects effectively. Mark speaks regularly at conferences and user groups in America and Europe.
Developing enterprise applications isn't easy. You not only have to worry about constantly evolving business logic, but also need to address infrastructure concerns ranging from transaction management and security to manageability and integration with diverse external applications. Spring, the most popular lightweight enterprise application framework, comes to the rescue by simplifying the common needs of enterprise applications. This session (part 1 of 2) presents the core concepts of the Spring Framework.
In this session we discuss the motivations behind the Spring approach to creating enterprise applications. We cover the core ideas such as POJOs, dependency injection, container configuration, testing, and aspect-oriented programming. We also show how all of these concepts work together using a simple application. By the end of this session, you will have a clear idea of what Spring is and what it can do for you.
This session (part 2 of 2) will cover advanced concepts in the Spring framework. While the core concepts in the first session will get you started with Spring, the advanced concepts in this session will help you be more effective at developing Spring-based applications.
In this session, you will learn how to use Spring effectively across a wide range of technical areas such as persistence, transactions, web applications, remoting, manageability, and messaging. By the end of this session, you will be ready to start using Spring to build enterprise applications - or if you have already started using Spring, you should be able to do so more effectively.
In this session, we will take a deep-dive into annotation-based dependency injection with Spring 2.5. You will learn how to combine annotation and XML formats, how to customize component scanning, and how to leverage Java 6 annotations within a Spring application. Since there is no "one size fits all" solution to application configuration, we will wrap up the discussion with general guidelines to consider when employing this approach.
Although XML is the most widely used format for Spring configuration, other options do exist including properties files, Spring's Java Configuration, and even Groovy builders. Spring 2.5 adds to this mix with support for Java's @Resource annotation and Spring's @Autowired annotation. Spring 2.5 also supports classpath scanning for Spring components. This session will provide a comprehensive overview of these new Spring 2.5 features for annotation-based configuration.
In the first-part of this two-part workshop, Mark will focus on the essentials of Enterprise Integration with Spring. First, he will take a whirlwind tour of Spring's enterprise integration support libraries. Next, he will discuss the "big picture" of an event-driven architecture based on messaging with an overview of key enterprise integration patterns. Attendees will leave with a clear understanding of Spring's integration capabilities and an appreciation for the benefits of message-driven architecture, ready to put that into practice in Part II.
Producing high-quality, testable code while remaining agile requires loosely-coupled, highly-cohesive components that are not tied to any particular infrastructure - in other words: separation of concerns. When building web applications, MVC frameworks provide an environment for achieving separation of web-specific concerns (such as HTTP requests) from an application's business logic. However, an enterprise Service Oriented Architecture may require many types of integration beyond the web-tier such that maintaining separation of concerns can become a significant challenge. Spring offers assistance with inversion of control, aspect-oriented programming, and a wide variety of service abstractions, but learning how to put the pieces together may not be immediately obvious. This session teaches how to put the pieces together to form an event-driven architecture.
Spring support libraries covered: - Remoting - JMX - Messaging - Scheduling - Mail
Enterprise Integration patterns discussed: - Message Channel - Message Endpoint - Message Router - Message Translator
Building on Part I, Part II of this workshop will demo a series of messaging systems built on Spring. The samples will exercise event-driven scenarios involving distributed architectures with messaging and remoting. Each sample will highlight a variety of important enterprise integration patterns.
Some samples will focus on routing to multiple endpoints based on message content. Others will focus on exposing a service for asynchronous as well as synchronous requests across multiple protocols. Still others will demonstrate translation of the message content in order to satisfy the requirements of multiple consumers. All of the samples will emphasize the need to maintain separation of concerns so that business logic is reusable in multiple environments and testable in isolation.