This advanced course is designed for Java developers who need to learn how to use the Spring Framework to create well-designed, testable business applications in an agile manner. During this course, you will learn Spring's features and how to use them. You will also become familiar with the fundamental architectural issues you will need to be aware of when developing with the Spring framework. It is important to know how to use certain parts of the Spring framework, but even more important to be able to decide when to use them!
Topics Covered:
Work with the Spring Inversion of Control (IoC) Container
Effectively use JDBC , Hibernate and JPA for data access
Use JUnit, Spring, stubs and mocking frameworks to effectively implement automated unit and integration tests
Take advantage of Aspect-Oriented Programming (AOP) to keep code clean and maintainable
JMS, JMX, Spring Batch
And much more...
Introduction
Spring overview
Basic environment
Spring Architecture
Spring Framework definition
Spring Framework design principals
Sprint interfaces
Spring setup
Setting classpath and jar files
Setting configuration
Spring Core Concepts
Spring quick start
Writing bean definitions
Configuring objects
Creating an application context
Design Patterns
Inversion of Control
Dependency Injection
Bean Life-Cycle
Application context life-cycle
Initialization of beans
Using beans
Destruction
Other considerations
Spring Application Configuration
Bean definition inheritance
Inner beans
Property editors
Bean naming
Importing configuration files
Custom XML Namespaces
Testing Spring Application
Unit Testing vs. Integration Testing
Unit Testing
Stubs vs. Mocks
Integration Testing
AOP with Spring
Spring AOP
Implementing Aspect
Configure the Aspect as a Bean
Property changes with context
Useful spring JoinPoint Context
Context Selecting pointcuts
Advices with spring Aop
Advice best practices
Spring AOP XML
Unit Testing
Mock Testing
Integration Testing
Spring Data Access
Spring in enterprise data access
Spring resource management
Spring data access support
Data access in a layered architecture
Common data access configurations
Spring JDBC Access
Spring JDBC Template
JDBC Template Internals
Creating JDBC DAO
Configuring the Application
Spring Transaction Management
Why use transactions?
Local transaction management
Programmatic JTA
Declarative transactions
Spring transaction management
Transaction propagation
Object-Relational Mapping with Spring and JPA
ORM
JPA (or hibernate)
Spring JPA Entitiy Manager (or Spring Hibernate Session Factory)
JPA Template & DAO (or Hibernate Template & DAO)
Spring and JMS
Java Messaging API Overview
Queues and Topics
Message Types
Message Filters
Transactions
Spring Configuration
Producing and consuming messages with Spring
Listeners
Spring and JMX
Java Management Extensions Overview
MBeans
Mbean Servers
Annotations
JMX with Spring
Spring Batch
Concepts
Job and Steps
JobLauncher
Tasklets
ItemReaders and ItemWriters
Step Flows
Tools
Developers who aim to develop Java applications within the Spring framework