Duration
5 days
Outline
- Overview of Spring
- Java EE: The Good, The Bad, and the Ugly
- Enter the Framework
- Spring Value Proposition
- The Spring Container
- Web Applications
- Persistence Support
- Aspect-Oriented Programming
- The Java EE Module(s)
- The Container
- JavaBeans, Reconsidered
- The Factory Pattern
- Inversion of Control
- XML View: Declaring Beans
- Java View: Using Beans
- Singletons and Prototypes
- Instantiation and Configuration
- Configuring Through Properties
- Configuration Namespaces
- The p: Notation
- Bean (Configuration) Inheritance
- Configuring Through Constructors
- Bean Post-Processors
- Lifecycle Hooks
- Integrating Existing Factory Code
- Awareness Interfaces
- Dependency Injection
- Assembling Object Graphs
- Dependency Injection
- Single and Multiple Relationships
- The Utility Schema
- Using Spring Expression Language (SpEL)
- Inner Beans
- Autowiring
- @Component, @Service, & Company
- @Autowired Properties
- Best Practices with Spring Annotations
- Java Classes as @Configurations
- AnnotationConfigApplicationContext
- Capabilities and Limitations
- Mixing and Importing XML and Java Configurations
- Assembling Object Models
- Collections and Maps
- Support for Generics
- The Spring Utility Schema (util:)
- Autowiring to Multiple Beans
- Order of Instantiation
- Bean Factory vs. Application Context
- The Web Module
- Servlets and JSPs: What's Missing
- The MVC Pattern
- The Front Controller Pattern
- DispatcherServlet
- A Request/Response Cycle
- The Strategy Pattern
- Web Application Contexts
- Annotation-Based Handler Mappings
- @Controller and @RequestMapping
- "Creating" a Model
- Views and View Resolvers
- Handling Requests
- Matching URLs
- Identifying Views
- Request Parameters
- Injectable Parameters
- Command Objects
- Return Types
- HTTP Methods
- Path Variables
- Scope and Granularity of Command Objects
- Headers and Cookies
- RESTful Web Services
- Working with Forms
- Form Processing in Spring MVC
- Command Objects in Request Methods
- Spring Custom Tags
- <form:form> and Friends
- Text Fields, Check Boxes, and Buttons
- Radio Buttons and Select/Option Lists
- Command objects at Session Scope
- Limitations of @SessionAttributes
- Data Binding
- A Consolidated Process
- Property Editors
- DataBinder and @InitBinder Methods
- Converters and Formatters
- Using <mvc:annotation-driven/>
- Custom Formatters
- Validation
- Validating Form Input
- Spring Validators
- Deriving a Validator Reference
- Applying a Validator
- <form:errors>
- Bean Validation, a/k/a JSR-303
- Configuring Bean-Validation Support
- Automatic Support with @Valid
- Configuring Spring MVC
- Configuring Message Sources
- Resolving Error Codes
- Codes for Bean Validation
- HandlerExceptionResolver
- @ExceptionHandler
- @ControllerAdvice for Global Error Handling
- Interceptors
- Configuring Interceptors
- Filters in the Request-Handling Cycle
- Persistence with JDBC
- Reducing Code Complexity
- The DataAccessException Hierarchy
- JdbcTemplate
- RowMapper<T> and ResultSetExtractor<T>
- The DaoSupport Hierarchy
- Capturing Generated Keys
- Transaction Control
- TransactionTemplate
- Isolation Levels
- Transaction Propagation
- Persistence with JPA
- Object/Relational Mapping
- The Java Persistence API
- JpaDaoSupport and JpaTemplate
- @PersistenceUnit and @PersistenceContext
- Shared Entity Managers
- Using <tx:annotation-driven>
- The @Transaction Annotation
- Isolation and Propagation
- A Limitation of @Transactional
- Understanding Entity States
- Bean Validation in JPA
- Optimistic Locking
Programme scope, delivery arrangements and suitability are confirmed during enquiry.