SPR-101: Spring for Beginners Syllabus
Outline
In this two day course you learn how to start using the Spring Framework to create well-designed, testable business applications in an agile manner. A day-by-day outline of this training course follows:
Day 1 - Spring Framework Foundations
- Introduction to the lightweight container architecture and the Spring Application Context
- How Dependency Injection and Test-Driven Development allow you to develop consistently structured, highly configurable, easily testable applications quickly
- How Spring helps you write better, more cohesive code, with a discussion of relevant Object-Oriented design patterns
- Hands-on labs based upon a realistic business case to be extended throughout the course
Day 2 - Building the Middle-tier with Spring
- How to use built-in Spring Aspects inside an Application
- Effective persistence: how to build a JDBC-based persistence layer with Spring in best-practice fashion
- Transaction management strategies with Spring at the service layer
- Middle-tier unit and integration test strategies
Day by day account
Day 1
Day 1 will start with a detailed explanation of the concepts of Inversion of Control and one of its common implementations, Dependency Injection. You will learn how to use this fundamental principle to increase the testability of your code and to create well-designed, layered applications. You'll apply design patterns that are ideally suited for use with a lightweight container, and see techniques by example that help you maximize code reuse.
Next, you'll dive into the world of the Spring Application Context, the heart of Spring. You'll learn how to use the Application Context to develop maintainable, extensible applications. These include how and when to:
- Create Spring configurations with XML and Annotations
- Use Spring IDE to visualize your application's configuration
- Leverage the Spring 2.5 namespaces for more concise XML configuration
- Modularize the Spring configuration following best practices
By the end of the day, you'll understand the Spring Lightweight Container Architecture and how it allows you to rapidly assemble a complex system from a set of loosely coupled components. You'll understand the big picture of what Spring is all about, and how it helps you write high quality applications faster.
Day 1 introduces a realistic business case to fuel the hands-on application development throughout the course. Day 1 itself includes several labs where you will become familiar with the fundamentals of Spring's lightweight container while following a test-driven approach.
You'll learn how to use mocks and stubs effectively to facilitate parallel development across collaborating teams, and see what's required from a communication perspective to make it happen. You'll gain experience designing a well-defined business facade, and apply techniques for capturing business contracts in code. The same business case will be used for the next day of the course with labs covering systems tests, persistence and transaction management.
Day 2
Day 2 picks up where Day 1 left off: extending the business case into a realistic middle-tier application. You will learn what test-driven development is about and start to create top-down integration tests to validate the functionality of the entire application and the contracts of the components as well. You will use the Spring integration test framework to write integration tests within its target infrastructure.
After that the core application logic you implemented on the first day will be integrated with enterprise services such as transaction management, you will get a brief introduction into the world of Aspect Oriented Programming (AOP), learning how to use Spring's built-in aspects.
After the fundamentals of Spring AOP have been established, you will move on to Spring's role in transaction management and data access. By the end of the day, you'll know how to significantly reduce the complexity of your data access code by leveraging Spring for resource management, exception translation, and declarative transaction demarcation.
After an overview of Spring's middle-tier support, you'll proceed into implementation of the data access layer for the lab application. You'll leverage JDBC to connect your application to a database. Using Spring's Template-based infrastructure, you'll implement reliable and efficient data access services in very few lines of code. After introducing an JDBC-based implementation of the persistence layer you will learn how to integration an JPA based persistence layer into an Spring application. You will gain experience on how to mix both approaches inside one application.
Next, you'll demarcate transactions using several techniques from the Spring transaction infrastructure. Both declarative and programmatic transaction management are covered. You'll get hands-on experience with PlatformTransactionManager implementations. You'll learn how Spring supports switching between local and global transaction management without requiring any code changes.
You'll declaratively set transaction boundaries, use propagation and rollback rules properly, and learn how to design the transaction infrastructure for your application. You'll learn how to express transactional policies as source-level metadata with JDK 5.0 annotations.
By the end of the day, you'll build a fully functional middle-tier that hosts your application's core logic in support of the business case. You'll verify quantitatively that the components of the application work in isolation as well as part of an end-to-end integration test, all without deploying to an application server once. You'll have experienced first-hand the benefits of Test-Driven Development (TDD) and fail-fast. You'll understand how to use JDBC effectively, and see how Spring allows you to decorate your business services with infrastructure in a declarative, dynamic fashion.
By the end of the course you will know all the basics to start building Spring powered applications in the enterprise. In addition, all the training materials covered, as well as the end deliverable you build, are yours for your continued reference.
General Information
Approach
Through our trainings, you benefit from the wide experience and architectural expertise of our team. We bring that experience to you in a highly interactive, intensely hands-on setting. The Getting Started With Spring course not only focuses on explaining Spring features and how to use them, but also on fundamental architectural issues. It's important to know how to use certain parts of a framework, but it's even more important to be able to decide when to use them.
Assumptions
We assume participants have a good understanding of the core Java APIs, as well as a basic knowledge of general J2EE concepts and APIs. Furthermore, there are some basic SQL skills required to write simple queries against a relational database system.
Lab Work
Since this class focuses on Spring as well as the theory of developing lightweight applications that are maintainable and extensible from the ground up, it is 50% theory-oriented and 50% practical application.
Since lab work is a major part of the course, you use a computer when taking this course. For scheduled public training events, we generally (unless otherwise indicated) provide a fully configured lab PC for your use. You may bring your laptop, but it is not necessary. For on-site trainings, SpringSource also offers the possibility of arranging a development machine for you. More information about the availability of computers is available when registering for this course.
Contact Us
If you would like more information on this training, please contact us.
Take me back to the Spring for Beginners Training Page

