8420  Reviews star_rate star_rate star_rate star_rate star_half

Spring Fundamentals

This Spring course teaches learners the core concepts of the Spring Framework. Learners gain a solid understanding of Dependency Injection, the Spring Container, and how to define and manage Spring...

Read More
$1,350 USD
Duration 2 days
Course Code WA1850
Available Formats Classroom, Virtual

Overview

This Spring course teaches learners the core concepts of the Spring Framework. Learners gain a solid understanding of Dependency Injection, the Spring Container, and how to define and manage Spring Beans. The course also covers Spring application testing, Aspect-Oriented Programming (AOP), Spring's robust support for database integration, transaction management, and JPA. By the end of this training, learners confidently build well-structured, testable, and maintainable applications using the Spring Framework.

Skills Gained

  • Understand Spring Framework fundamentals, including Dependency Injection and coding to interfaces
  • Configure and use the Spring Container
  • Define and manage Spring Beans, including bean scope, profiles, and external properties
  • Apply Spring annotations for defining and injecting bean dependencies
  • Implement unit and integration tests for Spring applications
  • Explain and apply Aspect-Oriented Programming (AOP) concepts in Spring
  • Integrate Spring with databases using Spring JDBC, ORM, and transaction management
  • Use Spring with JPA for object-relational mapping

Prerequisites

  • Confident programming in Java
  • Strong understanding of object-oriented programming (OOP) principles

Course Details

Introduction to the Spring Framework

  • What is the Spring Framework?
  • Spring Philosophies
  • Coding to Interfaces
  • Dependency Injection
  • Easy to Test
  • Why Spring?
  • Spring Container
  • Quick Spring Example - @Configuration
  • Quick Spring Example - ApplicationContext
  • Avoiding Dependency on Spring
  • Additional Spring Projects/Frameworks
  • What is Spring Boot?

Defining and Using Spring Beans

  • Spring “Beans”
  • Spring ApplicationContext
  • Instantiating the Spring ApplicationContext
  • Retrieving Spring Beans
  • Configuration classes
  • @Bean methods
  • Overriding Bean Names
  • Uniqueness of Bean IDs / Names
  • Bean Scope
  • Effect of Bean Scope on Instances
  • Profiles
  • Profiles – Not.
  • Default Profile
  • Profile on @Configuration class
  • Eager vs Lazy
  • Lazy Bean Misuse
  • External Properties
  • @Value
  • @PropertySource
  • @PropertySource & @Profile

Defining Spring Beans - Annotations

  • Defining Beans with Annotations
  • @Component Annotation
  • @ComponentScan Annotation
  • Bean ID/name and Type
  • Scope, Profile, and Lazy
  • Constructors
  • Constructor injection with @Autowired
  • Setter injection with @Autowired
  • Constructor vs. Setter Injection
  • Field injection with @Autowired
  • Setting properties with @Value
  • Resolving Duplicate Beans
  • Disambiguation with @Qualifier
  • @PostConstruct
  • @PreDestroy
  • Java @Configuration vs Annotation Configuration
  • Alternate Annotations, JSR 330 @Named
  • JSR 330 @Inject Annotation
  • JSR 250 @Resource Annotation

Testing Spring Applications

  • Spring Testing
  • Unit Testing vs Integration Testing
  • Setup
  • Implementing JUnit / Spring Integration Tests
  • Shortcut - @SpringJUnitConfig
  • Accessing Spring Components Within Test Classes
  • Defining Tests to Execute
  • Testing
  • @DirtiesContext
  • Default Configuration
  • @ActiveProfiles
  • @TestPropertySource
  • @Transactional Testing Support
  • @Sql Database Support
  • JUnit Annotations
  • Other useful JUnit Annotations
  • Mock Objects
  • Sample JUnit test with Mockito (no Spring)

Introduction to Aspect-Oriented Programming

  • What is AOP?
  • Cross-Cutting Concerns
  • Cross-Cutting Concern Example
  • AOP Terminology
  • AOP in Spring
  • Understanding Proxy Objects
  • CGLib Proxies
  • AOP Example
  • Enabling Spring AOP
  • Five Advice Types
  • Pointcut Syntax
  • Pointcut Examples
  • @Before Example
  • @AfterReturning Example
  • @Around Example

Overview of Spring Database Integration

  • DAO Design Pattern
  • DAO Support in Spring
  • Spring Data Access Support
  • Spring JDBC Support
  • Defining DataSource Beans
  • Connection Pooling
  • Embedded Databases
  • Selecting a DataSource using @Profile
  • Spring ORM Support
  • DataAccessException
  • DataAccessException
  • @Repository Annotation

Spring JDBC Support

  • Spring JDBC Support
  • Main Spring JDBC Classes
  • Spring JdbcClient
  • Using JdbcClient
  • JdbcClient, Named parameters
  • Retrieving domain objects
  • RowMapper
  • Retrieving multiple domain objects
  • Updates with JdbcClient
  • Inserts with JdbcClient
  • JdbcTemplate
  • JdbcTemplate - Updates
  • JdbcTemplate – Query with RowMapper

Spring Transaction Management

  • Transactions
  • Declarative Transaction Management in Spring
  • PlatformTransactionManager
  • Bean ID = transactionManager
  • Transaction Management Setup
  • What Will Spring Do?
  • Understanding Propagation
  • Transaction Behavior - Propagation
  • Transaction Behavior - Isolation
  • Read-Only and Timeouts
  • Setting attributes using @Transactional
  • Transaction Rollback
  • Limitations of Proxies
  • Proxy Work-Around - Self-Injection
  • Testing with @Transactional

Using Spring with JPA

  • Object to Relational Mapping Frameworks (ORM)
  • Java ORM frameworks
  • Using JPA in a Spring Application
  • JPA Metadata
  • EntityManagerFactoryBean
  • Understanding the EntityManager and Persistence Context
  • Primary EntityManager methods
  • Entity Lifecycle
  • Spring DAO based on JPA
  • Why @PersistenceContext, not @Autowired?
|
View Full Schedule

Schedule

1 options available

  • Sep 9, 2025 - Sep 10, 2025 (2 days)
    Live Virtual | 9:00AM 5:00PM EDT
    Language English
    Select from 1 options below
    Live Virtual |9:00AM 5:00PM EDT
    Live Virtual | 9:00AM 5:00PM EDT
    Enroll
    Enroll Add to quote

FAQ

Does the course schedule include a Lunchbreak?

Classes typically include a 1-hour lunch break around midday. However, the exact break times and duration can vary depending on the specific class. Your instructor will provide detailed information at the start of the course.

What languages are used to deliver training?

Most courses are conducted in English, unless otherwise specified. Some courses will have the word "FRENCH" marked in red beside the scheduled date(s) indicating the language of instruction.

What does GTR stand for?

GTR stands for Guaranteed to Run; if you see a course with this status, it means this event is confirmed to run. View our GTR page to see our full list of Guaranteed to Run courses.

Does Ascendient Learning deliver group training?

Yes, we provide training for groups, individuals and private on sites. View our group training page for more information.

What does vendor-authorized training mean?

As a vendor-authorized training partner, we offer a curriculum that our partners have vetted. We use the same course materials and facilitate the same labs as our vendor-delivered training. These courses are considered the gold standard and, as such, are priced accordingly.

Is the training too basic, or will you go deep into technology?

It depends on your requirements, your role in your company, and your depth of knowledge. The good news about many of our learning paths, you can start from the fundamentals to highly specialized training.

How up-to-date are your courses and support materials?

We continuously work with our vendors to evaluate and refresh course material to reflect the latest training courses and best practices.

Are your instructors seasoned trainers who have deep knowledge of the training topic?

Ascendient Learning instructors have an average of 27 years of practical IT experience and have also served as consultants for an average of 15 years. To stay current, instructors spend at least 25 percent of their time learning new, emerging technologies and courses.

Do you provide hands-on training and exercises in an actual lab environment?

Lab access is dependent on the vendor and the type of training you sign up for. However, many of our top vendors will provide lab access to students to test and practice. The course description will specify lab access.

Will you customize the training for our company’s specific needs and goals?

We will work with you to identify training needs and areas of growth.  We offer a variety of training methods, such as private group training, on-site of your choice, and virtually. We provide courses and certifications that are aligned with your business goals.

How do I get started with certification?

Getting started on a certification pathway depends on your goals and the vendor you choose to get certified in. Many vendors offer entry-level IT certification to advanced IT certification that can boost your career. To get access to certification vouchers and discounts, please contact info@ascendientlearning.com.

Will I get access to content after I complete a course?

You will get access to the PDF of course books and guides, but access to the recording and slides will depend on the vendor and type of training you receive.

How do I request a W9 for Ascendient Learning?

View our filing status and how to request a W9.

Reviews

Good course. I appreciate the time the instructor put into teaching this class.

Very good company. I've done technical trainings at their facility in downtown Montreal in the past and I'Ve always appreciated them.

ExitCertified provided great learning material and the instructor was great.

Course was great and the instructor had an answer for anything that was asked during the course.

Good training. A lot to take in for the short amount of time we have though