Core Spring

The Spring Framework is one of the leading lightweight architectures for creating enterprise-scale applications in Java. Spring encapsulates traditional Java Enterprise Edition tasks such as creating Web applications, Web services, middle-tier components, data-access components using JDBC and Hibernate, and messaging components using JMS. This detailed hands-on course covers all of these topics in depth. You will also learn how to use Inversion of Control (IoC) and Dependency Injection to minimize dependencies and to achieve Test-Driven Development, and how to use Aspect-Oriented Programming (AOP) to implement cross-cutting functionality. During the course you will create a realistic enterprise application that showcases the diverse enterprise capabilities of Spring.

Audience:

Developers creating enterprise Java applications using the Spring Framework.

Prerequisites:

Java programming experience, and an awareness of enterprise development.

Course outline:

  • Spring Framework - Essentials: What is Spring? Dependency injection and Inversion of Control (IoC); Aspect-Oriented Programming (AOP) with Spring; Test-Driven Development principles; Defining a first application
  • Using Inversion of Control (IoC): Implementing IoC in Spring; Implementing dependency injection via beans and bean factories; Spring bean definition profiles and environments
  • More about Spring Bean Configuration: Property editors; Type converters; Autowiring and component scanning; Spring Expression Language; Spring unified property management; Bean definition profiles; Caching
  • Java-Based Bean Configuration: Using the @Configuration annotation; Dependency injection in Java-based configuration; Using Spring support for XML namespaces in Java-based configuration; Accessing properties
  • Understanding the Application Context Lifecycle: Bean factory post processing; Bean post processing; Implementing @PostConstruct and @PreDestroy methods; Understanding dynamic proxies
  • Aspect-Oriented Programming (AOP): Spring AOP architecture; Defining pointcuts; Defining joinpoints; Implementing advice methods; Understanding pointcut designators; Implementing introductions
  • Spring Data Access: Spring data access concepts; JdbcTemplate; Spring repositories and application architecture; JPA integration; Hibernate integration
  • Spring Transactions: Local vs. global transactions; Understanding PlatformTransactionManager; Declarative transactions; @Transactional; Advising transactions; Roll-backs; Bean-specific transactions
  • Creating Web Applications with Spring Web MVC: Overview of MVC; Spring MVC implementation; Configuring a dispatcher servlet; Defining a controller; Mapping request parameters; Mapping path variables; Accessing HTTP cookies, headers, and session state
  • Going Further with Spring Web MVC: Form handing; Formatting; Validation; Java-based MVC configuration; Servlet 3.0 support; Ajax support; Asynchronous requests
  • Spring Web Services: Hosting SOAP web services in Spring; Implementing RESTful services; Using Spring REST annotations; Implementing RESTful clients
  • Spring Integration: Overview of Spring Integration; Adapters; Using Spring Integration as an alternative to Enterprise Service Buses

Additional Topics Available

  • Going Further with Spring Data: Prepared statements; Batch updates; Stored procedures; Handling large objects
  • Spring Web Security: Understanding security issues; Using Spring Web security; Configuring authentication; Accessing security information in JSP pages; Securing the application layer
  • Spring Web Flow: Overview of Spring Web Flow; Spring Web Flow Definitions; Configuring Spring Web Flows; Defining steps and transitions; Defining views; Decision states and action states
  • Spring Messaging: Introduction to Java Message Service (JMS); Spring JMS support; Sending and receiving messages
  • Spring Java Management Extensions (JMX): Introduction to JMX; Exporting Spring beans as MBeans; Customizing management interfaces
  • Spring Batch: Introduction to Spring Batch; Configuring Spring Batch beans; Implementing a job; Launching a job

Andy Olsen - author of the course

Andy is a freelance consultant and instructor based in the UK, working mostly in the City of London and Oxford. Andy has been working with .NET since the Beta 1 days and has extensive experience in many facets of .NET development including WCF, WPF, WF, ASP.NET MVC Web development, and mobile applications. Andy has designed and written many Microsoft Official Curriculum courses in the last decade, and has been engaged as author and technical reviewer with Apress on some of their biggest selling books.

Other relevant courses

25. February
3 days
Classroom
4. February
5 days
Classroom
11. February
5 days
Classroom
6. March
3 days
Classroom