Introduction to Spring 5 and JPA2 Training in Kitchener, Canada
| 
                	 We offer private customized training for groups of 3 or more attendees.
                 | ||
| Course Description | ||
| This course includes coverage of all the core Spring 5 and JPA 2
capabilities, as well as the integration capabilities provided by
Spring. It provides extensive coverage of using Spring and JPA together,
as well as using Spring Boot for dependency management and creating
JPA-based repositories using Spring Data. All capabilities are practiced
via an extensive set of hands-on labs.  Spring 5 provides an
evolutionary advance of Spring's powerful capabilities. The course
introduces these capabilities, as well as providing guidelines on when
and how to use them. It includes coverage of the three main
configuration styles: Java-based (@Configuration), annotation-based
(@Component), and the traditional XML-based configuration that may still
play an important role in existing and new projects. It uses Spring Boot
capabilities for dependency management in many of the labs.  The JPA
material covers all basic JPA concepts, including mapping persistent
classes, and using EntityManager and EntityManagerFactory to access and
manipulate persistent entities. Querying with the Java Persistence Query
Language (JPQL) is covered in depth, from basic queries to more advanced
queries like eager queries using left joins. It also includes coverage
of advanced concepts such as collections of value objects,
relationships, and inheritance and polymorphic queries.  This course is
hands on with labs to reinforce all the important concepts.  It will
enable you to build working Spring/JPA applications and give you an
understanding of the important concepts and technology in a very short time. 
                        Course Length: 5 Days Course Tuition: $2190 (US) | ||
| Prerequisites | |
| Basic Java | |
| Course Outline | 
| 
	Session 1:  Introduction to Spring 
	Overview of Spring Technology 
	Motivation for Spring, Spring Architecture 
	The Spring Framework 
	Spring Introduction 
	Declaring and Managing Beans 
	ApplicationContexts - The Spring Container 
	XML and @Component/@Named Config 
	Dependencies and Dependency Injection (DI) 
	Examining Dependencies 
	Dependency Inversion / Dependency Injection (DI) 
	DI in Spring - XML and @Autowired 
	Session 2:  Configuration in Depth 
	Java Based Configuration (@Configuration) 
	Overview, @Configuration, @Bean 
	Dependency Injection 
	Resolving Dependencies 
	Integrating Configuration Types 
	XML and @Component Pros/Cons 
	@Configuration Pros/Cons 
	Choosing a Configuration Style 
	Integrating with @Import and <import> 
	Bean Scope and Lifecycle 
	Singleton, Prototype, and Other Scopes 
	Configuring Scope 
	Bean Lifecycle / Callbacks 
	Externalizing Properties 
	Properties Files 
	@PropertySource, property-placeholder 
	Using @Value 
	SpEL 
	Profiles 
	Overview and Configuration 
	Activating Profiles 
	Session 3:  Spring Boot Overview 
	maven and Spring 
	Spring Boot Structure 
	Spring POMs with Boot Parents 
	Spring Boot Starters 
	Other Capabilities 
	Session 4:  Spring Testing 
	Testing and JUnit Overview 
	Writing Tests - Test Classes, asserts, Naming Conventions 
	Running Tests - IDE, maven, ... 
	Test Fixtures - setup and teardown 
	Spring TestContext Framework 
	Overview 
	Configuration 
	Running Tests 
	Session 5: Introduction to Java Persistence API (JPA2) 
	Overview 
	Persistence Layers, Object-Relational Mapping (ORM), JDBC 
	JPA Overview 
	Mapping with JPA 
	Entities and @Entity, ids and @Id, 
	Generated Id Values 
	Basic Mapping Types 
	Persistence Unit and EntityManager 
	Persisting to the DB, the EntityManager API 
	Persistence Units, Config, Persistence Context 
	Retrieving Persistent Entities with find() 
	More About Mappings 
	Default Mappings, @Basic, @Column 
	Field vs. Property Access 
	Temporal (Date/Time) Mappings 
	Java 8 Data/Time Mapping 
	equals() and hashCode() 
	Logging Options (Provider based) 
	Session 6: Spring/JPA Integration 
	Spring's DataSource Support 
	Managing the EntityManager (EM) 
	LocalContainerEntityManagerFactoryBean and Container-managed EMs 
	JEE and JNDI Lookup of the EM 
	Configuration and Vendor Adaptors 
	Creating a JPA Repository/DAO Bean - @PersistenceUnit, @PersistenceContext 
	Session 7: JPA Updates and Queries 
	Inserting Updating, and Deleting Entities 
	Querying and JPQL 
	Entity Based Queries, SELECT ,WHERE 
	Query Interface, Executing Queries, Generic Queries (JPA 2) 
	JPQL Operators, Expressions, and Parameters 
	Named Queries 
	Additional Query Capabilities - Projection and Aggregate Query, Embedded Objects 
	Session 8 Transactions 
	TX Overview and JPA Transactions 
	Spring's Declarative TX Management (REQUIRED, etc.) 
	@Transactional 
	TX Scope and Propagation 
	Pointcut-based Configuration of Transactions 
	Session 9: The JPA Persistence Lifecycle 
	The Persistence Lifecycle 
	JPA Entity States (New, Managed, Detached, Removed), and Entity State Diagram 
	Persistence Context - Lifespan, Propagation 
	Synchronization to the DB 
	Versioning and Optimistic Locking 
	Overview, Detached Instances 
	Versioning, @Version, Optimistic Locking 
	Lifecycle Callbacks 
	@PrePersist, @PostPersist, etc. 
	Entity Listeners, @EntityListeners 
	Session 10: Relationships 
	Relationships Overview: Object Relationships, Participants, Roles, Directionality, Cardinality 
	Relationship Mapping 
	Mapping Overview (1-1, 1-N, N-1, N-N) 
	Unidirectional and Bidirectional 
	@ManyToOne, @OneToMany, @ManyToMany, @OneToOne with Table Structures 
	Relationship Inverse - Owning Side 
	Collection Types (List, Set, etc) 
	Cascading, Lazy and Eager Loading 
	Queries Across Relationships (Inner Joins, Outer Joins, Fetch Joins) 
	Entity Inheritance Mapping 
	Overview 
	Single Table, Joined (Table per Subclass), Table per Concrete Class Mappings 
	Pros and Cons of Mapping Strategies 
	Session 11:  Spring Web Integration 
	Integrating Spring with Java EE Web Apps 
	ContextLoaderListener 
	WebApplicationContext 
	Using Spring beans in Wep app controller logic 
	Open EntityManager in View 
	Lazy Loading Issue in Web Apps 
	Open EntityManager in View Pattern 
	Using Spring's OpenEntityManagerInViewFilter/Interceptor 
	Session 12: Spring Data Introduction 
	Spring Data Overview 
	Overview and Architecture 
	Configuring Spring Data 
	Repositories and JPA Repositories 
	Using CrudRepository 
	Using Spring Data 
	Naming Conventions for Querying 
	Creating more Complex Queries 
	Query Configuration 
	Session 13: Additional Topics 
	Spring 5: Core Updates 
	JPA: Embedded Objects 
	JPA: Compound Primary Keys 
	JPA: Element Collections | 
Course Directory [training on all levels]
- .NET Classes
- Agile/Scrum Classes
- AI Classes
- Ajax Classes
- Android and iPhone Programming Classes
- Azure Classes
- Blaze Advisor Classes
- C Programming Classes
- C# Programming Classes
- C++ Programming Classes
- Cisco Classes
- Cloud Classes
- CompTIA Classes
- Crystal Reports Classes
- Data Classes
- Design Patterns Classes
- DevOps Classes
- Foundations of Web Design & Web Authoring Classes
- Git, Jira, Wicket, Gradle, Tableau Classes
- IBM Classes
- Java Programming Classes
- JBoss Administration Classes
- JUnit, TDD, CPTC, Web Penetration Classes
- Linux Unix Classes
- Machine Learning Classes
- Microsoft Classes
- Microsoft Development Classes
- Microsoft SQL Server Classes
- Microsoft Team Foundation Server Classes
- Microsoft Windows Server Classes
- Oracle, MySQL, Cassandra, Hadoop Database Classes
- Perl Programming Classes
- Python Programming Classes
- Ruby Programming Classes
- SAS Classes
- Security Classes
- SharePoint Classes
- SOA Classes
- Tcl, Awk, Bash, Shell Classes
- UML Classes
- VMWare Classes
- Web Development Classes
- Web Services Classes
- Weblogic Administration Classes
- XML Classes
- Python for Scientists 
 8 December, 2025 - 12 December, 2025
- RHCSA EXAM PREP 
 17 November, 2025 - 21 November, 2025
- Introduction to Spring 6, Spring Boot 3, and Spring REST 
 15 December, 2025 - 19 December, 2025
- Fast Track to Java 17 and OO Development 
 8 December, 2025 - 12 December, 2025
- RED HAT ENTERPRISE LINUX SYSTEMS ADMIN II 
 8 December, 2025 - 11 December, 2025
- See our complete public course listing 
Java Programming Uses & Stats
| Difficulty | Popularity | Year Created1995 | 
| Pros 
	Most Commonly Used:  
	Great Career Choice:  
	Android Apps Development: 
	It Can Run On Any Platform: 
	Great Supporting IDE's: | Cons 
	Uses a Lot of Memory: 
	Difficulty in Learning:  
	Slow Start Up Times: 
	Verbose and Complex Code: 
	Commercial License Cost: | 
| Java Programming Job Market | 
|   Average Salary |   Job Count |   Top Job Locations 
	New York City  | 
| Complimentary Skills to have along with Java Programming - If you are an experienced Java developer, learning a complimentary language to Java should come much more naturally. As an example JetBrains recently created the Kotlin programming language which is officially supported by Google for mobile development. Kotlin compiles to Java bytecode and runs on the JVM; it's purported to address many of Java's shortcomings... | 






