Mark Fisher

Spring Integration Lead

Mark Fisher
Mark Fisher is a Senior Software Engineer with SpringSource and lead of the Spring Integration project. As a core developer for the Spring Framework, he played a central role in developing the annotation-based configuration features of Spring 2.5. He has also provided consulting and training services for clients across numerous industries throughout North America including several fortune 500 companies.

In addition to the "No Fluff, Just Stuff" symposium tour, Mark speaks regularly at conferences such as The Spring Experience and SpringOne. He has also presented at Java User Groups throughout the United States on various Spring-related topics.

Presentations

Configuring Spring with Annotations

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.

Enterprise Integration Patterns with Spring - Part II

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.

Enterprise Integration Patterns with Spring - Part I

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

Introduction to Spring Integration

Spring Integration was officially announced at The Spring Experience last year, and since then we have released 1.0. Attend this session to learn what Spring Integration is all about and how you can get started using it right away.

The session begins with an overview of the Enterprise Integration Patterns as catalogued in the highly influential book of the same name. The patterns provide a context for describing the various roles and integration concerns in an application based on messaging. We will then explore the Spring Integration API to see how it enables the development of Message-driven applications based on those patterns. Along the way, you will see how Spring Integration builds upon familiar Spring idioms such as interceptors, templates, and the strategy pattern. You will also see that Spring Integration maximizes reuse of the integration support in the Spring Framework core for everything from remoting and JMS to transactions and task execution. In addition to providing a robust, proven foundation, that also flattens the learning curve considerably for those already familiar with Spring.

Patterns we will discuss include Message Channel, Channel Adapter, Service Activator, Message Translator, Content-Based Router, Message Bus, and more. After attending this session, you will be able to start applying these patterns immediately within your Spring-based applications to solve many of the challenges of enterprise integration.

Spring Integration Deep Dive

Intended for those who have already attended the "Introduction to Spring Integration", this session offers an intensive, demo-driven exploration of Spring Integration's advanced configuration options and extension points.

In this session, you will learn how to schedule concurrent pollers, how to enable transactions across Message Endpoints, and how to apply security for Message Channels. Next, you will learn how to configure advanced routing strategies including the Scatter/Gather pattern with customized Splitters and Aggregators. Finally, we will explore the many extension points within the API in much greater depth than in the introductory session. After this session, you will understand how to provide your own inbound and outbound adapters, message transformers, and domain-specific routers. Most importantly, you will understand how to do all of this while maintaining the separation of concerns that is essential for producing maintainable, testable code.

Spring Integration 2.0 Preview

Coming Soon Session Detail