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
- Use Spring Security to secure web and standalone applications
- Manage live applications with ease using Spring's support for Java Management Extensions (JMX)
- 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
Aspect – Oriented Programming with AspectJ
- AOP and AspectJ overview
- AspectJ tutorial
- Handson exercises
- Wrap up
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)
Developers who aim to develop Java applications within the Spring framework
Core Java Syntax - (D-EJAVA-301-001) Effective JAVA Programming