Core SpringIn this four-day bootcamp you learn how to use the Spring Framework to create well-designed, testable business applications in an agile manner. Completion of this course entitles each student to waive the registration fee for the Spring Framework Certification Examination. OutlineA day-by-day outline of our flagship Spring training course follows:
Day by day accountA detailed, day in the life account of each day follows: Day 1Day 1 will start with a detailed explanation of the concepts of Inversion of Control and Dependency Injection. You will learn how to use those fundamental principles 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 not only the basic features of the Application Context, but also the advanced capabilities necessary to develop maintainable, extensible applications. These include how and when to:
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. You'll develop top-down integration tests to validate those contracts early, and use Spring's test support library to rapidly establish a test harness. The same business case will be used for the remaining three days of the course with labs covering persistence, web-tier, and integration. Day 2Day 2 picks up where Day 1 left off: extending the business case into a realistic middle-tier application. Now that the core application logic you implemented on the first day will be integrated with enterprise services such as transaction management, you will dive into the world of Aspect Oriented Programming (AOP), learning where to use AOP and how to identify crosscutting concerns. You'll learn how to use Spring's built-in aspects and develop one of your own. AOP topics covered:
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 both Hibernate and JDBC to connect your application to a database. Using Spring's DaoSupport classes and the Template-based infrastructure, you'll implement reliable and performant data access services in very few lines of code. You'll gain hands-on experience on how to wield JDBC effectively in situations which you require ultimate performance and demand complex relational operations. You'll see how Spring has a unique capability to combine ORM and JDBC data access techniques in 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 And it doesn't stop there. 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 apply transaction behavior automatically using autoproxy creators and 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, hosting 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 Hibernate and JDBC effectively, and see how Spring allows you to decorate your business services with infrastructure in a declarative, dynamic fashion. Day 3Day 3 focuses on effective web architecture, covering Spring MVC in detail. You'll learn how to use and customize Spring's powerful DispatcherServlet, and how to connect input data in forms to behavioral-rich domain objects in an automatic, declarative fashion. You'll get best-practice experience with Spring's Controller, HandlerMapping, ViewResolver, and View hierarchies, and when to choose what implementations. You'll see what it takes to internationalize and brand your application as well as techniques for improving your customer's UI experience. After completing the labs, you will be familiar with the various types of Controllers available in Spring MVC. You'll then learn how Spring Web Flow can completely handle the role of Controller so that you don't have to implement complex flow logic in code. You'll learn how to modularize reusable behavior in flow definitions. You'll learn the various scopes that are provided in addition to the standard request and session scopes. You'll see how Spring Web Flow handles common web application issues like back-button behavior and redirect-after-post. Once you gain experience with Spring MVC and Spring Web Flow, you'll see how to tap into a Spring business layer in other UI environments like Struts or JSF with zero code changes. You'll then learn how to add comprehensive security services to your web application using Spring Security. You'll learn how to accommodate the wide variety of authentication mechanisms that may be required in an enterprise application. At the same time, you'll learn how to apply access rules that are completely decoupled from the authentication mechanism. Day 4Day 4 is all about building on what you've done so far, scaling it up with Spring AOP and IOC in a transparent manner. You'll see how Spring lets you tap into the full power of J2EE without costly rewrites or rearchitecture. After having learnt the techniques to manage transactions declaratively, you've gained experience with dynamic proxies, interceptors and other fundamental AOP building blocks. Now, you will build upon that knowledge to see how Spring uses the same general techniques for enterprise integration. You'll export a transactional service to remote clients over a variety of protocols with Spring's Remoting support. You'll then learn how to create Web Services, working in a contract first fashion. Next,, you'll learn how do JMS messaging with Spring's Message-Driven POJOs. You will also see how to build in monitoring and manageability to your application using Spring's JMX support. As one recent student told us, by the end of the course you'll have "learned a ton, almost all of which you can apply immediately". In addition, all the training materials covered, as well as the end deliverable you build, are yours to take back to your team. General InformationApproachThrough our trainings, you benefit from the wide experience and architectural expertise of our team. We bring that experience to you in an highly interactive, intensely hands-on setting. The Core 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. AssumptionsWe assume participants have a good understanding of 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. After you register, a SpringSource staff member will be happy to recommend any necessary reading to ensure that you get maximum value from the training. Lab WorkSince 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. 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 UsIf you would like more information on this training, please contact us.
|