Core Spring4.0 Course Content
Introduction to Spring
- XML configuration and the Spring application context
- Best practices: constructor versus setter injection
- Working with multiple configuration files
- Bean scope and factory beans
Advanced XML Dependency Injection
- Most popular namespaces
- Best practices when working with namespaces
- Externalizing constant values into properties files
- Working with a high number of configuration files
- Bean definition inheritance
Annotation-Based Dependency Injection
- Autowiring and component scanning
- Component scanning: how to do it right
- XML versus annotations: when to use what
- Life cycle annotations: PostConstruct and @PreDestroy
- Stereotypes and meta-annotations
Java-Based Dependency Injection
- Configuration and @Bean annotations
- Where is the magic? Inheritance-based proxies
- Equivalent to XML namespaces: Enable annotations
- When to use Java configuration
Bean Life Cycle: How Does Spring Work Internally?
- The init phase: available interceptors
- The init phase: what is the difference between XML, annotations, and Java configuration?
- What happens during bean post processing
- Use and destruction phases
Testing a Spring-Based Application
- Spring and test-driven development
- ContextConfiguration and RunWith annotations
- Application context caching and the DirtiesContext annotation
- Environment abstraction and bean definition profiles
Aspect-Oriented Programming
- What problems does AOP solve?
- Differences between Spring AOP and AspectJ
- Defining pointcut expressions
- Implementing an advice: Around, @Before, @After, and so on
Data Access and JDBC with Spring
- How Spring integrates with existing data access technologies
- DataAccessException hierarchy
- Implementing caching using Cacheable
- jdbc namespace and the Spring JdbcTemplate
Database Transactions with Spring
- @Transactional annotation
- Transactions configuration: XML versus annotations
- Isolation levels, transaction propagation, and rollback rules
- Transactions and integration testing
- Should you use read-only transactions?
Integrating Spring with JPA and Hibernate
- Quick introduction to ORM with JPA
- Benefits of using Spring with JPA
- JPA configuration in Spring
- PersistenceException versus the Spring DataAccessException
Spring in a Web Application
- Configuring Spring in a Web application (using Spring MVC, Struts, JSF, and so on)
- namespace
- Introduction to Spring MVC
- Using Controller and @RequestMapping annotations
Spring Security
- What problems does Spring Security solve?
- Configuring authentication and intercepting URLs
- Spring Security tag library for JSPs
- Security at the method level
- Customizing the Spring Security filter chain
Advanced Topics
- Remoting: Using Spring remoting and the Spring HttpInvoker for remote access
- JMS: Sending and receiving messages using the JmsTemplate
- JMX: Configuring Spring to export automatically MBeans and exporting a Spring bean as an MBean