Course Duration: 5 days
Prerequisites:
Students are expected to have a reasonable command of the Java Language. All attendees must have at least one year of full-time Java and JSP development experience. Prior experience with servlets and JSP is recommended but not required.
Course Outline:
- Spring Introduction
- Shortcomings of Java EE and the Need for Loose Coupling
- Managing Beans, The Spring Container, Inversion of Control
- The Factory Pattern
- Configuration Metadata – XML, @Component, Auto-Detecting Beans
- Dependencies and Dependency Injection (DI) with the BeanFactory
- Setter Injection
- Dependency Injection
- Using the Application Context
- Constructor Injection
- PropertyEditors
- Factory Methods
- Crucial Namespaces ‘p’ and ’c’
- Configuring Collections
- Bean Definition Inheritance and Collection Merging
- Expression Languages, SpEL
- The Spring Container and API
- The Spring Managed Bean Lifecycle
- Key interfaces, Annotations and BeanPostprocessors
- Event Handling and Listeners
- Message Sources and Internationalization
- Autowiring Dependencies
- Other Metadata Configurations
- Annotation Configuration @Autowired, @Required, @Resource
- @Component, Component Scans. Component Filters
- @Value and @Qualifier
- Life Cycle Annotations
- Java Configuration, @Configuration, XML free configuration (Optional)
- The AnnotationConfigApplicationContext
- Spring 4 Specifics
- Groovy Bean Definition DSL
- Generic Qualifiers for Bean Injection
- Using CGLib Proxy classes with the objenesis library
- Using @Conditional and @Lazy
- Java 8 feature support
- Spring and Persistence
- Spring and JDBC
- JdbcTemplate/JdbcDaoSupport
- Spring and Hibernate
- HibernateTemplate/HibernateDaoSupport
- Spring and JPA
- JpaTemplate/ JpaDaoSupport
- Direct access to JPA via @PersistenceUnit and @PersistenceContext
- CRUD methods
- Spring AOP
- PointCuts, JoinPoints, Aspects, Adices
- Before, After, AfterReturning, AfterThrowing, Around
- Annotation Configuration
- XML Configuration
- Transaction Management
- Transaction Propagation
- Declarative Transaction Management: @Transactional
- Annotation Configuration, Rollback Rules, Isolation
- Advisors
- XML Configuration
- Develop Web Applications using the Spring Framework – Spring MVC
- The WebApplicationContext and the ContextLoaderListener
- Model View Controller
- Front Controller Pattern
- DispatcherServlet Configuration
- Controllers, RequestMapping
- Working with Forms
- Getting at the Request, @RequestParam, @RequestHeader, @CookieValue
- ModelAndView
- Using the POST Redirect GET pattern with FlashAttributes
- Advanced techniques
- Spring form tags and Model Binding, @ModelAttribute
- Chain multiple View Resolvers
- Handler Interceptors
- Data Validation JSR303
- Spring Controllers and Ajax
- JavaScript(JQuery) access to Controllers (brief selector overview)
- URITemplates
- Using @ResponseBody
- JSON and XML data exchange
- HTTP GETS and POSTS
- RESTful Web Services
- Core REST concepts
- REST support in Spring 4.x
- Use Spring MVC to create RESTful Web services
- REST specific Annotations in Spring
- URITemplates, @PathVariable, @RequestParam
- JSON and XML data exchange
- @RequestMapping
- Contract Negotiation (CONNEG)
- Client access with HttpClient or RestTemplate
- Spring Introduction
- Shortcomings of Java EE and the Need for Loose Coupling
- Managing Beans, The Spring Container, Inversion of Control
- The Factory Pattern
- Configuration Metadata – XML, @Component, Auto-Detecting Beans
- Dependencies and Dependency Injection (DI) with the BeanFactory
- Setter Injection
- Dependency Injection
- Using the Application Context
- Constructor Injection
- PropertyEditors
- Factory Methods
- Crucial Namespaces ‘p’ and ’c’
- Configuring Collections
- Bean Definition Inheritance and Collection Merging
- Expression Languages, SpEL
- The Spring Container and API
- The Spring Managed Bean Lifecycle
- Key interfaces, Annotations and BeanPostprocessors
- Event Handling and Listeners
- Message Sources and Internationalization
- Autowiring Dependencies
- Other Metadata Configurations
- Annotation Configuration @Autowired, @Required, @Resource
- @Component, Component Scans. Component Filters
- @Value and @Qualifier
- Life Cycle Annotations
- Java Configuration, @Configuration, XML free configuration (Optional)
- The AnnotationConfigApplicationContext
- Spring 4 Specifics
- Groovy Bean Definition DSL
- Generic Qualifiers for Bean Injection
- Using CGLib Proxy classes with the objenesis library
- Using @Conditional and @Lazy
- Java 8 feature support
- Spring and Persistence
- Spring and JDBC
- JdbcTemplate/JdbcDaoSupport
- Spring and Hibernate
- HibernateTemplate/HibernateDaoSupport
- Spring and JPA
- JpaTemplate/ JpaDaoSupport
- Direct access to JPA via @PersistenceUnit and @PersistenceContext
- CRUD methods
- Spring AOP
- PointCuts, JoinPoints, Aspects, Adices
- Before, After, AfterReturning, AfterThrowing, Around
- Annotation Configuration
- XML Configuration
- Transaction Management
- Transaction Propagation
- Declarative Transaction Management: @Transactional
- Annotation Configuration, Rollback Rules, Isolation
- Advisors
- XML Configuration
- Develop Web Applications using the Spring Framework – Spring MVC
- The WebApplicationContext and the ContextLoaderListener
- Model View Controller
- Front Controller Pattern
- DispatcherServlet Configuration
- Controllers, RequestMapping
- Working with Forms
- Getting at the Request, @RequestParam, @RequestHeader, @CookieValue
- ModelAndView
- Using the POST Redirect GET pattern with FlashAttributes
- Advanced techniques
- Spring form tags and Model Binding, @ModelAttribute
- Chain multiple View Resolvers
- Handler Interceptors
- Data Validation JSR303
- Spring Controllers and Ajax
- JavaScript(JQuery) access to Controllers (brief selector overview)
- URITemplates
- Using @ResponseBody
- JSON and XML data exchange
- HTTP GETS and POSTS
- RESTful Web Services
- Core REST concepts
- REST support in Spring 4.x
- Use Spring MVC to create RESTful Web services
- REST specific Annotations in Spring
- URITemplates, @PathVariable, @RequestParam
- JSON and XML data exchange
- @RequestMapping
- Contract Negotiation (CONNEG)
- Client access with HttpClient or RestTemplate