SpringSource's Core Spring: Developing with the Spring Framework

Topics covered at SPRING-01-04
View Schedule & Book More dates available

Next up:

  • 25th - 28th January 2016 in London, delivered by Russ Miles.

  • 8th - 11th February 2016 in Dublin, expert to be announced.

Core Spring is the four-day flagship Spring Framework training. In this course, students build a Spring-powered Java application that demonstrates the Spring Framework and other Spring technologies like Spring AOP and Spring Security in an intensely productive, hands-on setting.

Completion of this training entitles you to receive a free voucher to schedule an exam at a Pearson VUE Center to become a Spring Certified Professional.

Learn how to:

Course Objectives

  • Use the Spring Framework to develop Java applications
  • Use dependency injection to set up and configure applications
  • Test Spring-based applications
  • Set up Spring configuration using XML, annotations, and Java configuration
  • Use JPA/Hibernate and JDBC with Spring to access relational databases
  • Use Spring support for transactions
  • Use aspect-oriented programming (AOP) to add behavior to objects
  • Develop a basic Web application with Spring MVC
  • Use Spring Security to secure Web applications
  • Use Spring with RMI, HttpInvoker, and JMS for remote communication
  • Add management with the JMX API

What the community says

"Very knowledgeable teacher. Took his time to answer all questions we had."

Petar Stefauov on 19th Nov 2015

"Great tutor, knows how to keep people interested."

Artur Malinowski on 24th Sep 2015

"Very good at applying the examples to real world situations which is extremely useful."

Jonathan Sharifi on 24th Sep 2015

"Very well taught and very well presented by Russ. Simplified complex problems with stories very well."

Ricky Dean on 21st Sep 2015

"Very happy with the course, it's content and the instructor. It exceeded expectations."

Gareth Sullivan on 21st May 2015

About the Expert

Russ Miles

"An expert is someone who has succeeded in making decisions and judgements simpler; through knowing what to pay attention to and what to ignore” – Edward de Bono, “Simplicity”, 1998

About the Author

Rod Johnson

Rod is the father of Spring. The Spring Framework open source project began in February 2003, based on SpringSource's Spring framework published with Rod's best-selling Expert One-on-One Java EE Design and Development.

Thanks to our partners

1 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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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?

10 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

11 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

12 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

13 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


If you are an experienced Java EE Developer or Architect and you:

  • are interested in learning all about developing java applications with Spring
  • You have an upcoming project and need to learn Spring quickly
  • You like to become Spring Certified to improve your career opportunities


To benefit from this Core Spring course you will need to be an experienced Java developer or architect with experience developing applications using Java.

Bring your own hardware

Delegates are requested to bring their own laptop for this course, with Java 6 installed. If you are unable to bring a laptop for the course, please contact the sales team on +44 20 7183 9040, or email the sales team.