Developing with the Spring™ Framework Training Course

Training » All Courses » Java » Developing with the Spring™ Framework

Course Summary

In this four-day Spring Framework Development training course you learn how to use the Spring Framework to create well-designed, testable business applications in an agile manner. This 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.

[top] Duration

4 days.

[top] Objectives

  • The Spring Lightweight Container Architecture, including Inversion of Control Agile, domain-driven design techniques with Spring
  • Effective JDBC and Hibernate data access
  • Declarative transaction management
  • Pragmatic AOP
  • Unit testing in isolation
  • Rapid system integration testing
  • Spring Web MVC
  • Spring Security, Remoting, and JMX

[top] Audience

Experienced Java Developers who need to learn how to develop and use the Spring Framework.

[top] Prerequisites

This course assumes that participants have the a good understanding of Object Oriented programming and the core Java APIs, as well as a basic knowledge of general J2EE concepts and APIs, such as JTA and the Servlet API. As we cover object-relational mapping technologies (ORM) in this course as well, we assume basic knowledge of ORM concepts.

[top] Outline

Day 1 - Agile J2EE: Foundations

  • Introduction to the lightweight container architecture and the Spring Application Context
  • How Dependency Injection and TDD allow you to develop consistently structured, highly configurable, easily testable applications quickly
  • How Spring helps you write better, more cohesive code, with a discussion on relevant OO design patterns

Day 2 - Effective Middle-tier Architecture

  • Interactive, middle-tier design session with a realistic business case
  • Effective persistence: how to build a persistence layer with Spring in best-practice fashion
  • Analysis and tradeoffs of relevant persistence strategies, including Hibernate, TopLink, JDO, iBATIS, and Spring JDBC
  • Transaction management strategies with Spring at the service layer
  • Middle-tier unit and integration test strategies

Day 3 - Effective web architecture and design

  • Illustration of Spring MVC's value-add capabilities with a realistic sample application
  • Comparison with Struts
  • Integration points with JSF and Tapestry, and when they might be appropriate
  • Spring Web Flow, how to capture controlled navigations as reusable modules
  • Integrating other view technologies such as JSP, PDF, Excel, Velocity, and Freemarker
  • Effective web-tier unit and integration test strategies

Day 4 - Scaling up with AOP and Spring Enterprise Services

  • Pragmatic Spring AOP in the middle-tier, with examples and without buzzwords
  • Developing custom aspects with Spring
  • Applying targeted advice at groups of Spring-managed services automatically
  • Web, service-level, and instance level security with Acegi
  • Transparent web services with Spring Remoting
  • Building in manageability with Spring JMX

[top] Additional Notes

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 40% theory-oriented. There is 60% lab-work.

Spring™ is a trademark of SpringSource, Inc. Java™ and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. Marakana does not have any affiliation with these companies.

Marakana.com Runs on Java using Spring Framework

Spark Stack

Marakana.com is written in Java using Spring and Hibernate frameworks. We deploy it on Apache Tomcat Application Server. Both Marakana Spark and Apache Tomcat are Java applications and thus run on Java Virtual Machine. Spark uses MySQL database for persistence. Our operating system of choice is Ubuntu Linux, for security and reliability reasons. So we practice what we teach. You will learn from real developers.