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