"Charting the Course ...

... to Your Success!"

Spring 3x Advanced Topics

Course Summary Description

This course is the next step in using the many features Spring 3.x has to offer. Web topics covering Web Flow and MVC address the powerful features for building popular workflow structures in applications today. Spring Batch addresses the Web counterpart to business processing. The final two topics address all areas in Spring. Security touches all layers of a business application. The newly rewritten Spring Security structure covers all areas addressed down to the Method level. is the last topic that can be used to build entire applications, including Spring MVC. Due to the size of Spring Roo, the depth will depend on available remaining time. The various Spring Integration features of messages will be demonstrated based on student requirements.

Objectives At the end of this course, students will be able to:

 Design, create and debug Spring MVC applications.  Understand Web Flow and where it can be used.  Create, monitor, and test Spring Batch applications.  Apply Security to all levels of Spring applications, including methods.  Use Spring Roo to create Spring applications.  Configure Spring using Java Classes.  Apply Spring Integration options.

Topics

 Working with Spring Web Flow  Introducing Spring Security  The Web Module and Spring MFC  Web Security  Controllers and Commands  Securing the Service Layer  Binding and Validation  Customizing and Extending Spring Security  Introducing Spring Batch  Working with Remote Services  Batch Configuration  Messaging in Spring  Running Batch Jobs  Managing Spring Beans with JMX  Reading Data  Additional Spring Concepts  Writing Data  What is Spring Roo?  Processing Data  Getting Started with Roo  Transaction Management  Database Persistence with Entities  Enterprise Integration  Relationships, JPA, and Advanced Persistence  Monitoring Jobs  Rapid Web Applications with Roo  The Scope of Security

Audience

This course is designed for Developers who have attended the Core Spring class at Wells Fargo or equivalent experience in developing or maintaining Spring applications.

Prerequisites

Spring programming experience, a basic knowledge of configuration, familiarity with the Spring dependency injection, and Aspect oriented programming.

Duration

Five days

Due to the nature of this material, this document refers to numerous hardware and software products by their trade names. References to other companies and their products are for informational purposes only, and all trademarks are the properties of their respective companies. It is not the intent of ProTech Professional Technical Services, Inc. to use any of these names generically

PT1297_SPRING3XADVANCEDTOPICS.DOC

"Charting the Course ...

... to Your Success!"

Spring 3x Advanced Topics

Course Outline

I. Working with Spring Web Flow VIII. Reading Data A. Installing Spring Web Flow A. Data reading concepts B. The components of a flow B. Reading from relational databases C. Putting it all together in an application C. Using other input sources D. Securing web flows D. Implementing custom readers

II. The Web Module and Spring MFC IX. Writing Data A. Servlets and JSPs: What's Missing? A. Data-writing concepts B. The MVC Pattern B. Writing to databases C. The Front Controller Pattern C. Writing to JMS D. DispatcherServlet D. Implementing custom item writers E. Why Spring MVC? E. Advanced writing techniques F. Application Configuration G. Spring Handler Mapping X. Processing Data H. spring-servlet.xml A. Processing items I. Adding the Services Layer B. Transforming items C. Filtering and validating items III. Controllers and Commands D. Chaining item processors A. Overview of the Spring MVC Controllers B. ParameterizableViewControllers XI. Transaction Management C. SimpleFormControllers A. A transaction primer D. Inserting Spring Custom Form Tags B. Transaction management in Spring Batch E. Binding Data components F. Incorporating MultiActionControllers C. Transaction configuration D. Transaction management patterns IV. Binding and Validation A. Adding Validators XII. Enterprise Integration B. Creating a Model Validator A. What is enterprise integration? C. Working with Message Properties Files B. Spring Batch and enterprise integration D. Using Annotations C. Spring Integration, a toolbox for enterprise E. The @Controller Annotation integration F. The @RequestMapping Annotation D. RESTful job submission with Spring MVC G. Other Handler Annotations E. Triggering jobs from file system events F. RESTful job monitoring with Spring MVC V. Introducing Spring Batch A. What are batch applications? XIII. Monitoring Jobs B. Testing the batch process A. Introducing monitoring C. Skipping incorrect lines instead of failing B. Accessing batch execution data D. The batch domain language C. Monitoring with listeners E. The Spring Batch infrastructure D. Web monitoring with Spring Batch Admin F. Anatomy of a job E. Monitoring with JMX

VI. Batch Configuration XIV. The Scope of Security A. The Spring Batch XML vocabulary A. The Network Security Layer B. Configuring jobs and steps B. The Operating System Layer C. Configuring the job repository C. The Application Layer D. Authentication and Authorization: General VII. Running Batch Jobs Concepts A. Launching concepts E. What to Secure B. Job schedulers F. More Security Concerns C. Launching from a web application G. Java Options for Security D. Stopping jobs

Due to the nature of this material, this document refers to numerous hardware and software products by their trade names. References to other companies and their products are for informational purposes only, and all trademarks are the properties of their respective companies. It is not the intent of ProTech Professional Technical Services, Inc. to use any of these names generically

PT1297_SPRING3XADVANCEDTOPICS.DOC

"Charting the Course ...

... to Your Success!" Spring 3x Advanced Topics

Course Outline (cont’d)

I. Representing resources XV. Introducing Spring Security J. Writing REST clients A. What is Spring Security? B. Where does Spring Security fit in? XX. Messaging in Spring C. Spring Security and Spring A. A brief introduction to JMS D. : A Quick Overview B. Setting up a message broker in Spring E. An Initial Spring Security Secured Application C. Using Spring’s JMS template F. Understanding the Simple Application D. Creating message-driven POJOs E. Using message-based RPC XVI. Web Security A. Introducing the simple example application XXI. Managing Spring Beans with JMX B. The Special URLs A. Exporting Spring beans as MBeans C. Custom Login Form B. Remoting MBeans D. Basic HTTP Authentication C. Handling notifications E. Digest Authentication F. Beyond Simple User Roles: Using Spring XXII. Additional Spring Concepts Expression Language to Secure the Web Layer A. Bean Scopes G. Extend with Custom Expressions B. Property Files C. Property Editors XVII. Securing the Service Layer D. Bean Post Processors A. The Limitations of Web-Level Security E. Parent-Child Bean Definitions B. What Is Business Service-Level Security? F. Test Driven Development Considerations C. How the Described Actions Happen Under the Hood XXIII. What is Spring Roo? D. Creating a Business Layer in an Application A. Overview and Configuration E. @RolesAllowed Annotation B. Roo application architecture models F. Securing the Application Using SpEL Expressions XXIV. Getting Started with Roo G. Securing the Data Returned from a Method A. Working with the Roo shell H. Using AspectJ AOP instead of Spring AOP B. How Roo manages projects C. Refactoring, Roo ITDs and leaving Roo XVIII. Customizing and Extending Spring Security A. Spring Security Extension Points XXV. Database Persistence with Entities B. Plug into the Spring Security Event System A. Business objects and persistence C. Your Own AuthenticationProvider and B. Working with entities UserDetailsService C. Validating Courses with Bean Validation D. Password Encryption D. Searching with finders E. Custom Security Filter E. Leaving Active Record—JPA repositories F. Handling Errors and Entry Points F. Code samples G. Changing the Security Interceptor H. Spring Security Extensions Project XXVI. Relationships, JPA, and Advanced Persistence XIX. Working with Remote Services A. Object relations: it’s all relative A. An overview of Spring remoting B. A sample Course Manager database B. Working with RMI C. Course Manager relationships C. Exposing remote services with Hessian and D. Reverse engineering your database Burlap E. Adding a service layer D. Using Spring’s HttpInvoker F. Using JPA directly E. Publishing and consuming web services F. Giving Spring some REST G. Getting REST H. Writing resource-oriented controllers

Due to the nature of this material, this document refers to numerous hardware and software products by their trade names. References to other companies and their products are for informational purposes only, and all trademarks are the properties of their respective companies. It is not the intent of ProTech Professional Technical Services, Inc. to use any of these names generically

PT1297_SPRING3XADVANCEDTOPICS.DOC

"Charting the Course ...

... to Your Success!" Spring 3x Advanced Topics

Course Outline (cont’d)

XXVII. Rapid Web Applications with Roo A. The Spring MVC B. Roo Spring MVC quick-start C. Web scaffolding for entities D. Accessing other Spring beans

XXVIII. Configuring Security A. Installing Spring Security B. Securing a sample application C. Testing security setup D. Adding security event logging

XXIX. Testing Applications A. Roo testing philosophy B. Stubbed unit tests C. Unit tests using mock objects D. Testing in-container with Roo E. Web testing with Selenium

Due to the nature of this material, this document refers to numerous hardware and software products by their trade names. References to other companies and their products are for informational purposes only, and all trademarks are the properties of their respective companies. It is not the intent of ProTech Professional Technical Services, Inc. to use any of these names generically

PT1297_SPRING3XADVANCEDTOPICS.DOC