The Spring Framework – Powering Enterprise Java Development

Seminar presented by Greater Boston Chapter of the ACM

From it’s not-so-humble start, the Spring Framework set its aim on reducing complexity in Java development. Now, as Spring celebrates its seventh birthday, it has become the de facto standard enterprise Java framework and continues its mission of providing great power with minimal effort.
On November 14-15, Craig Walls and Ken Sipe will be your guides to Spring. You’ll start by learning the principles of Dependency Injection and AOP, the basis of much of Spring’s power. Then you’ll see how to employ Spring in building enterprise applications that are maintainable, testable, and efficient. The weekend will conclude by giving you an opportunity to openly ask any questions that you may have about Spring.
When:     November 14-15, 2009
Where:    Maxwell-Dworkin Building
               Harvard University, Cambridge, MA
Details:     www.gbcacm.org
Special offer: Through November 10 receive a $50 discount using discount code GBCACMSF02-09

What is the Spring Framework?

Spring is a widely used open source framework that helps developers build high quality applications faster. Spring provides a consistent programming and configuration model that is well understood and used by millions of developers worldwide. Spring provides a range of capabilities for creating enterprise Java, rich web, and enterprise integration applications that can be consumed in a lightweight, a-la-carte manner.

Spring provides the ultimate programming model for modern enterprise Java applications by insulating business objects from the complexities of platform services for application component management, Web services, transactions, security, remoting, messaging, data access, aspect-oriented programming and more. Spring is built on an Inversion of Control (IoC) container that enables Java components to be centrally configured and wired together—resulting in code that is more portable, reusable, testable and maintainable.

 

Seminar Topics

Agenda – Saturday

Welcome/Sign-in (8:00am-9:00am)

Get your badge, enjoy a continental breakfast, pick out a seat and take advantage of the opportunity to meet people facing the same challenges you are.

Introduction (9:00am-9:10pm)

A quick overview of what we will be covering in these two days.

Morning Session (9:10am-12:00 noon)
Spring in Action (Craig and Ken)

The key to building maintainable and easily testable software is to keep coupling low between application objects. Although there are many facets to the Spring Framework, at its core Spring offers loose coupling through dependency injection and aspect oriented programming. In this introduction to the Spring Framework, we’ll profile the entire Spring portfolio before diving into a deeper examination of Spring’s dependency injection and AOP facilities. This will not only equip you to write more loosely coupled code around plain-old Java objects (POJOs), but also set the stage for working with the rest of Spring.

Spring 3 without XML and the ADD Developer (Ken)

Java projects have been plagued for sometime with a large amount of configuration information being pushed to XML.  This includes the configurability of classes and components which would make no sense for an administrator to reconfigure, as well as causing frustration in development over version code thrashing for the most commonly used shared files. Since Java 5 there has been a push for using annotations to describe metadata.  This removes the bottleneck associated with a common XML and increases productivity and opens up new challenges.  Annotation driven development (ADD) is enabled through Spring 2.5 / 3.0.  This session will expand upon the Spring in Action session and will discuss what belongs in the xml file and what should be annotated.

Lunch (12:00-1:00pm)

Lunch is provided, so you can sit with your fellow attendees and discuss the morning’s topics.

Afternoon Session (1:00pm-4:45pm)
Graph Problems [50 mins]
BuildingWeb Applications with Spring @MVC (Craig)

Many applications present themselves to their users through browser-based user interfaces. Building those web applications has never been simpler.  Spring has always offered an MVC web framework, but more recently Spring’s web framework has evolved to use of Java 5 annotations to offer a lighter, more POJO-like programming model. In this session, we’ll look at Spring’s annotation-based web MVC framework (commonly known as Spring @MVC).

Spring + JPA + Hibernate (Ken)

Most applications have some requirement to persist data.  The most popular two frameworks in the Java space for light-weight persistence is JPA and Hibernate.  This session will detail the core of JPA and Hibernate with a focus on what Spring provides to enhance productivity in leveraging these frameworks.

Agenda – Sunday

Welcome/Sign-in (8:00am-9:00am)

Enjoy a continental breakfast, pick out a seat and take advantage of the opportunity to meet people facing the same challenges you are.

Morning Session (9:00am-12:00 noon)
Spring Security (Craig)

Security is an essential element of many applications. Spring Security (formerly known as Acegi Security) is a very powerful and flexible security framework for Java. Based on the Spring Framework, Spring Security provides declarative method and web level security including a wealth of options for meeting your application’s specific security needs. In this session, we’ll explore the Spring Security framework and see how easy it is to use the new configuration elements and annotations to enable security in Java based applications.

Grails (Ken)

Grails is the fasting growing web framework in the Java web development space.  Grails brings together the best of breed Java frameworks, such as Spring, Spring Web Flow, Hibernate and Quartz and ties them together with a new language called Groovy.  This session provides a number of benefits relative to Spring; First, it is the most mature and advance use case of the Spring framework publicly available. Second, it is completely Java and third, developers are massively more productive using the Grails framework, craving a typical 30% – 40% off estimates.  This session will include an introduction to Grails, the build out of a web application, including how Spring injects work.

Lunch (12:00-1:00pm)

Lunch is provided, so you can sit with your fellow attendees and discuss the morning’s topics.

Afternoon Session (1:00pm-4:45pm)
In Pieces: Building modular applications with Spring Dynamic Modules and OSGi (Craig)

The secret weapon for attacking complexity in any project is to break it down into smaller, cohesive, and more easily digestible pieces. Unfortunately, Java lacks critical elements for building modular applications.  To address these shortcomings, OSGi brings true dynamic modularity to the Java platform and Spring Dynamic Modules (Spring-DM) bridges OSGi with the Spring Framework to offer a declarative programming model for working with OSGi services. In this session, we’ll see how to develop applications that are composed of smaller, more cohesive, and more loosely-coupled modules.

Panel Discussion (Craig and Ken)

This is a “stump the expert” panel.  This session purposefully lacks formal organization and is setup as a Q&A session.  Laptops will be present for live on the fly coding to provide coverage in areas of interest in the Spring space for which their wasn’t a formal session presented.

 

Key Modules

The Spring Framework comprises several modules that provide a range of services:

Inversion of Control container: configuration of application components and lifecycle management of Java objects

Aspect-oriented programming: enables implementation of cross-cutting routines

Data access: working with relational database management systems on the Java platform using JDBC and object-relational mapping tools

Transaction management: unifies several transaction management APIs and coordinates transactions for Java objects

Model-view-controller: an HTTP and Servlet-based framework providing hooks for extension and customization

Remote Access framework: configurative RPC-style export and import of Java objects over networks supporting RMI, CORBA and HTTP-based protocols including web services (SOAP)

Batch processing: a framework for high-volume processing featuring reusable functions including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management

Authentication and authorization: configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi).

Remote Management: configurative exposure and management of Java objects for local or remote configuration via JMX

Messaging: configurative registration of message listener objects for transparent message consumption from message queues via JMS, improvement of message sending over standard JMS APIs

Testing: support classes for writing unit tests and integration test.

 

You Will Learn

From it’s not-so-humble start, the Spring Framework set its aim on reducing complexity in Java development. Now, as Spring celebrates its seventh birthday, it has become the de facto standard enterprise Java framework and continues its mission of providing great power with minimal effort.

In this weekend seminar, Craig Walls and Ken Sipe will be your guides to Spring. You’ll start by learning the principles of Dependency Injection and AOP, the basis of much of Spring’s power. Then you’ll see how to employ Spring in building enterprise applications that are maintainable, testable, and efficient. The weekend will conclude by giving you an opportunity to openly ask any questions that you may have about Spring.

Whether you’re already working with Spring or are just getting started, you’ll leave this weekend equipped with greater understanding of Spring and new tricks and techniques that you can begin applying immediately to your projects

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s