Spring

Overview of Spring Technology

  • Shortcomings of Java EE, Spring Architecture

Spring Introduction

  • Managing Beans, The Spring Container, IoC, DI
  • Configuration Metadata – XML, @Component, Auto-Detecting Beans

Dependencies and Dependency Injection (DI)

  • Dependency Inversion, Dependency Injection (DI) in Spring, DI Configuration – XML, @Resource

Working with Bean Properties

  • Configuring Value Properties, Property Conversions, Setter / Constructor Injection

Spring Expression Language for Configuration

Collection Valued Properties

  • Configuring and using lists, sets, etc.

Additional Capabilities

  • Factory Methods, Bean Aliases, Definition Inheritance (Parent Beans)

The Spring Container and API

  • ApplicationContext
  • ClassPathXmlApplicationContext, FileSystemXmlApplicationContext, Constructors, Usage
  • Resource Access – Overview, Resource Implementations
  • Validation
  • Overview, JSR-303
  • Declarative Validation, @NotNull, @Size, @Min, etc
  • Configuration, Injection
  • Bean Scope and Lifecycle
  • Bean Scope Defined, Configuring, Inner Beans, Bean Creation Lifecycle, Lifecycle Callbacks, BeanPostProcessor, Event Handling
  • MessageSources
  • Defining and Using Resource Bundles, Localization/I18N
  • Annotation Driven Configuration
  • Stereotypes: @Component, @Service, @Controller, @Repository
  • Java EE 5 Annotation Support
  • Defining Custom Annotations
  • Autowiring
  • Java Based Bean Metadata (JavaConfig)
  • Overview – code-centric Configuration
  • @Confguration, @Bean, and @Value
  • Importing and @Import
  • Autowiring in Configuration Classes
  • Mixing XML Configuraiton and @Configuration
  • XML vs Annotation Based Configuration
  • Other Capabilities
  • SpEL – Spring Expression Language
  • Validation

Database Access with Spring

  • Issues with JDBC / Typical JDBC Flow
  • Introduction to Spring DAO Support
  • Spring Database API, (Simple)JdbcTemplate, (Simple)JdbcDaoSupport, DataSources,
  • Working With and Configuring, , , With Bean Refs, ,
  • Queries and Inserts
  • RowMapper, ParameterizedRowMapper, Passing Arguments, queryForObject, query, update
  • Additional API Capabilities
  • Additional query methods, Passing Type Arguments, queryForList, FetchSize, MaxRows
  • Using Spring with Hibernate
  • Overview of Template Approach, SessionFactory configuration
  • Using Contextual Sessions
  • Using Spring with JPA
  • LocalEntityManagerFactoryBean, LocalContainerEntityManagerFactoryBean, JNDI, PersistenceUnitManager
  • DAO Support – @PersistenceUnit, @PersistenceContext

Aspect Oriented Programming (AOP)

  • Overview of AOP
  • AOP Basics, Aspect, Joinpoint, Advice, Pointcut
  • Introduction to Spring AOP
  • Capabilities, Configuration (Annotation Based and XML), Weaving, Joinpoints
  • Using Aspects
  • Defining Advice, Configuring Pointcuts, Targets and Proxies
  • XML Configuration with
  • AspectJ Pointcuts, Autoproxies
  • Using @AspectJ Annotations

Spring Transaction (TX) Management

  • Intro to Spring Transaction Management
  • Overview, Component TX Model, TX Propagation, Declarative Transactions, TransactionManagers
  • Using Spring Transactions
  • Annotation Configured Transactions
  • @Transactional and its settings
  • XML Configured Transactions
  • new elements, Configuring tx:advice, and tx:attributes
  • Defining the TX advisor

Introduction to Spring Web Integration and Spring MVC

  • Integrating Spring with Java EE Web Apps, ContextLoaderListener, WebApplicationContext
  • Spring Web MVC Overview, Capabilities, Architecture
  • Spring MVC Basics
  • DispatcherServlet, Configuration, mvc Namespace
  • Controllers, @Controller, Handler Methods
  • @RequestParam and Parameter Binding
  • View Resolvers
  • Writing Controllers, @Controller, @RequestMapping, @RequestParam, @PathVariable
  • Forms and Binding, Spring Form Tags, @ModelAttribute
  • Session Attributes, @SessionAttributes

Overview of Spring Security

  • Overview – Capabilities, Architecture
  • Introduction to Spring Security
  • HTTP Security
  • Method Security
  • Annotation-Based Security
  • Expression-Based Access Control
  • Authentication Providers

Course Duration : 22 days (88 Hrs)