The Spring Framework: Powering Enterprise Java Development
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.
This seminar is designed for software practitioners, programmers, and designers. To meet your objectives, you need access to quality resources that explain real solutions using the Spring Framework to solve real problems.
It is best suited to moderately experienced programmers, typically with 2-10 years of software development experience.
What is the Spring Framework?
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.
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
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)
- Building Web 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.