Java EE with Vaadin JPA Hibernate Spring Boot and Maven

Vaadin Framework, Spring, Spring Security, Hibernate, Spring Boot, Maven, JPA, JBoss – WildFly
Java EE with Vaadin JPA Hibernate Spring Boot and Maven
File Size :
8.93 GB
Total length :
17h 4m



Holczer Balazs


Last update

Last updated 10/2022



Java EE with Vaadin JPA Hibernate Spring Boot and Maven

What you’ll learn

Get a good grasp on Maven
Get a good grasp on Java Persistence API (JPA) and Hibernate
Get a good grasp on Vaadin Framework
Get to know Spring Framework with XML
Get to know Spring Boot

Java EE with Vaadin JPA Hibernate Spring Boot and Maven


Basic Java
Maybe MySQL ( JPA will generate the queries, so not that important )


When I started software engineering, I always wanted to code without any configurations, version control or build server configurations. Later, I realized that coding is just one part of software engineering: architectural designs, design patterns and the ability to write reusable and loosely coupled software components are much more important parts of programming. In this course we are going to talk about the basics of professional software engineering such as how to seperate the code into multiple modules or how to use a build framework to build the final application for us. Before developing the final application from scratch – that wire all the included technologies together – we will consider these technologies on a one by one basis.In the first section we are going to consider Maven, one of the most popular build frameworks out there. The second chapter is about Java Persistence API and database related problems. The third chapter will cover Spring as far as the XML based configuration is concerned, then we will talk about the new way: the so-called Spring Boot. Finally, we are going to implement an application in which we are going to use all the technologies we have discussed.Section 1 – Installationssetting up the environmentinstalling Java, Eclipse, Maven and MySQLSection 2 – Mavenwhat is Mavenbuild lifecycles and phasesclean, site and defaulthandling dependenciesPOM filesSection 3 – Java Persistence API (JPA)why to use databases?JDBC and the old waywhat is Java Persistence API (JPA)object relation mapping with JPAhow to deal with inheritance with JPAhow to deal with composition with JPAbasic CRUD operations with EntityManagerusing HibernateSection 4 – Spring Frameworkwhat is inversion of control and dependency injection?XML based configurationannotation based configurationSection 5 – Spring Bootwhat is Spring Boot?annotations in Spring Bootusing Vaadin with Spring BootSection 6 – Vaadinwhat is the Vaadin framework?creating UI components easily with Vaadinlayouts and gridsnavigation and pagesSection 7 – Wiring all Together (Application from Scratch)creating a larger application from scratch (student management software)creating UI components with Vaadincreating the database structure etc. deploying and running the application on a serverSection 8 – Spring Securitywhat is Spring Security?authorization and authenticationlogin form Thanks for joining the course, let’s get started!


Section 1: Introduction

Lecture 1 Introduction

Section 2: Installations

Lecture 2 Installing Java

Lecture 3 Installing Eclipse

Lecture 4 Installing Maven

Lecture 5 Installing MySQL

Section 3: Maven

Lecture 6 What is Maven?

Lecture 7 Maven with command line and Eclipse

Lecture 8 Project object model (POM)

Lecture 9 Build lifecycles and phases I – clean

Lecture 10 Build lifecycles and phases II – site

Lecture 11 Build lifecycles and phases III – default

Lecture 12 Plugins

Lecture 13 Plugins example

Lecture 14 Maven repositories

Lecture 15 Multiple modules

Lecture 16 Parent pom vs aggregator pom

Lecture 17 Maven interview questions / summary

Section 4: Java Persistence API (JPA)

Lecture 18 The old way – JDBC

Lecture 19 JDBC approach with example

Lecture 20 What is Java Persitence API?

Lecture 21 Java Persistence API architecture

Lecture 22 Object relational mapping (ORM)

Lecture 23 First JPA application – insert new record I

Lecture 24 First JPA application – insert new record II

Lecture 25 JPA annotations

Lecture 26 Basic CRUD operartions with EntityManager – insert

Lecture 27 Basic CRUD operartions with EntityManager – read

Lecture 28 Basic CRUD operartions with EntityManager – delete

Lecture 29 Java Persistence Query Language (JPQL) – basic queries I

Lecture 30 Java Persistence Query Language (JPQL) – basic queries II

Lecture 31 Java Persistence Query Language (JPQL) – native SQL queries

Lecture 32 Java Persistence Query Language (JPQL) – named queries

Lecture 33 Inheritance in JPA

Lecture 34 Inheritance strategies I – single table

Lecture 35 Inheritance strategies II – joined table

Lecture 36 Inheritance strategies III – table per class

Lecture 37 MappedSuperclass

Lecture 38 Entity relationships – @OneToOne

Lecture 39 Entity relationships – @OneToMany and @ManyToOne

Lecture 40 Entity relationships – @ManyToMany

Lecture 41 Lazy and eager fetch

Lecture 42 Cascading fields

Lecture 43 Callbacks and listeners

Lecture 44 Locks – optimistic and pessimistic

Lecture 45 JPA vs hibernate

Lecture 46 JPA interview questions / summary

Section 5: Spring Framework

Lecture 47 What is the Spring framework?

Lecture 48 First Spring application

Lecture 49 Spring containers

Lecture 50 Bean scopes

Lecture 51 Bean lifecycle

Lecture 52 Dependency injection

Lecture 53 Annotations I

Lecture 54 Annotations II

Lecture 55 @Qualifier annotation

Section 6: Spring Boot

Lecture 56 Why Spring Boot came to be?

Lecture 57 First spring boot application

Lecture 58 Using annotations in Spring Boot

Lecture 59 Building the application with Maven

Lecture 60 Building the application with Eclipse

Lecture 61 Spring and Spring Boot summary

Section 7: Vaadin Framework Basics

Lecture 62 What is Vaadin framework?

Lecture 63 Spring boot with vaadin integration

Lecture 64 Texts

Lecture 65 Buttons

Lecture 66 TextField basics

Lecture 67 TextField and binding

Lecture 68 TextArea

Lecture 69 CheckBox

Lecture 70 ComboBox

Lecture 71 Grid

Lecture 72 Grid selections

Lecture 73 TabSheet

Lecture 74 Layouts – VerticalLayout

Lecture 75 Layouts – HorizontalLayout

Lecture 76 Layouts – FormLayout

Lecture 77 Dialog

Lecture 78 Images and icons

Lecture 79 Data binding and validation

Lecture 80 Navigation

Section 8: Wiring All Together – Web Application

Lecture 81 —————————- CONFIGURATION —————————–

Lecture 82 Configuring the application with Maven I – multi modules

Lecture 83 Configuring the application with Maven II – version

Lecture 84 Configuring the application – spring boot I

Lecture 85 Configuring the application – spring boot II

Lecture 86 Integrating with Vaadin

Lecture 87 Building with Maven

Lecture 88 Configuring the application – deploy to WildFly

Lecture 89 Creating the main layout

Lecture 90 Logo layout

Lecture 91 Menu layout

Lecture 92 Enum constants

Lecture 93 What we have done so far

Lecture 94 ——————- CUSTOM NAVIGATOR —————————–

Lecture 95 Custom navigator I

Lecture 96 Custom navigator II

Lecture 97 Custom navigator III

Lecture 98 Custom navigator IV

Lecture 99 —————— STUDENT SECTION ———————————

Lecture 100 Student model

Lecture 101 Student tabsheet

Lecture 102 The main layout I – the main structure

Lecture 103 The main layout II – initializing variables

Lecture 104 The main layout III – layout

Lecture 105 The main layout IV – component style

Lecture 106 Main layout – listeners and bind

Lecture 107 Validation

Lecture 108 Showing notifications

Lecture 109 Connecting to database I – properties file

Lecture 110 Connecting to database II – entities

Lecture 111 Repository and service

Lecture 112 Persisting Student objects

Lecture 113 Show all students layout I – the main structure

Lecture 114 Show all students layout II – repository

Lecture 115 Callback – updating the grid

Lecture 116 Remove student I

Lecture 117 Remove student II

Lecture 118 Remove student III – service

Lecture 119 Remove student IV

Lecture 120 —————— UNIVERSITY SECTION ——————————–

Lecture 121 Universities main view

Lecture 122 Add university – basics

Lecture 123 Add university – bind, layout

Lecture 124 Add university – save

Lecture 125 Add university – service

Lecture 126 University entity annotations

Lecture 127 Show universities layout – service

Lecture 128 Show all universities layout

Lecture 129 Update the table on every insertion

Lecture 130 —————— JOIN TABLES SECTION ——————————–

Lecture 131 Add student validation I

Lecture 132 Add student validation II

Lecture 133 Joining tables

Lecture 134 Statistics tab I

Lecture 135 Statistics tab II

Lecture 136 Statistics tab III

Section 9: Transactions

Lecture 137 Transaction introduction

Lecture 138 Using @Transactional

Section 10: Spring Security

Lecture 139 Authentication VS authorization

Lecture 140 —————— AUTHENTICATION ——————————–

Lecture 141 Overview of authentication

Lecture 142 Spring security configuration

Lecture 143 Spring security configuration II

Lecture 144 Setting up the database: USER

Lecture 145 Repository and service update

Lecture 146 Login form implementation I

Lecture 147 Login form implementation II

Lecture 148 Login form implementation III – authentication

Lecture 149 Signup layout

Lecture 150 Signup service and repository

Lecture 151 Wiring it together


Lecture 152 UPDATE: Vaadin 8 skeleton project

Lecture 153 Course materials

Lecture 154 JPA source code

Lecture 155 Spring source code

Lecture 156 Spring boot source code

Lecture 157 Vaadin source code

Lecture 158 Final web application source code

Lecture 159 Spring security authentication code

This course is meant for newbies as well as for engineers and programmers with some experience looking for a quick refresher on professional software engineering

Course Information:

Udemy | English | 17h 4m | 8.93 GB
Created by: Holczer Balazs

You Can See More Courses in the IT & Software >> Greetings from

New Courses

Scroll to Top