New

A quick, chronological list of every single published video

  Creating the domain classes: Customer

We are going to build a CRM system, so our domain is going to revolve around Customers. In this episode we will quickly create the domain class, that our entire projects depends upon.

> > Watch Now
Domain DrivenJava
Published: 18.08.2017
Difficulty: BEGINNERS
Runtime: 00:02:46

  Creating and preparing our Spring REST services project with Maven

We start at the very beginning, by creating an empty project skeleton with Maven. I chose Maven over Gradle in this series, to also showcase the Maven wrapper, which is very similar to the Gradle wrapper. In any case, this episode will get you up and running for every REST project you might want to start.

> > Watch Now
MavenProject Setup
Published: 17.08.2017
Difficulty: BEGINNERS
Runtime: 00:02:51

  What changes when we use Spring and @Transactional?

What does Spring's @Transactional have to do with the LazyInitializationException? How can you prevent the LazyInitializationException with Spring? What's the difference to using plain Hibernate? Find out in this episode.

> > Watch Now
LazyInitializationExceptionSpring Transaction Management@Transactional
Published: 30.07.2017
Difficulty: BEGINNERS
Runtime: 00:05:07

  The most common reason for a LazyInitializationException (and 3 solutions!)

In this episode you will learn how to manually trigger a LazyInitializationException, by trying to access Hibernate objects AFTER you closed the database connection. Then afterwards, we are going to look at three solutions to fix the exception, each with its own advantages and disadvantages.

> > Watch Now
LazyInitializationExceptionHibernate HQL QueriesHQL Join FetchFetchType EAGERHibernate.initialize
Published: 27.07.2017
Difficulty: BEGINNERS
Runtime: 00:08:05

  The basics: What does Hibernate really load from the database? (Or: Meet Proxies).

A bit of much needed background info on Hibernate proxies and collections. You will learn what Hibernate really loads from the database, when we execute a SQL search for all the episodes of a series.

> > Watch Now
HibernateLazy LoadingLazyInitializationExceptionProxies
Published: 25.07.2017
Difficulty: BEGINNERS
Runtime: 00:05:23

  Installing Clink - Putting cmd.exe on roids

On Windows, cmd.exe is your command prompt. But it is also a bit limited, compared to most (L)unix shells. There is a tiny little tool called Clink, which enhances your cmd.exe with a lot of great features. In this episode you will learn how you install Clink and what it can do for you.

> > Watch Now
Clinkcmd.exeWindows ShellBash
Published: 18.07.2017
Difficulty: BEGINNERS
Runtime: 00:02:38

  Forwarding our data to the Accounting Department Web Service

We read-in and validated the xml data in the last episodes, now we have to do a small REST request and send the data to the Accounting Department. You will learn how to quickly set-up and test a simple POST rest-call in this episode and how to handle not only successfull responses, but also errors.

> > Watch Now
Java RESTRest ClientRest Error Handling
Published: 17.07.2017
Difficulty: BEGINNERS
Runtime: 00:06:24

  Effectively saving all process data to the database, with JDBC

Remember, we also want all the data that we processed in our database. In this episode we will use JDBC with a file-based H2 database and save as much as we can to the database, for later querying and displaying in, say, an admin web application. Simple, but very effective.

> > Watch Now
JDBCJava CRUDH2 Database
Published: 15.07.2017
Difficulty: BEGINNERS
Runtime: 00:08:05

  Writing the .xml validation part

It's time for validating the xml data, which we read in in the last episode. Validating means a quick schema validation, as well as some other basic validations. You will work with the Java XML apis in this episode and learn how to quickly handle any XML you might encounter in the future in your own work.

> > Watch Now
Java XMLSchema ValidationXSDJava File API
Published: 14.07.2017
Difficulty: BEGINNERS
Runtime: 00:08:39

  Reading in our .xml files

Now that we have hooked up our virtual filesystem, we can jump right into reading in our credit card data xml files. In this episode you will learn how to write the 'read' functionality for our system, with the new Java Paths API, including tests.

> > Watch Now
java.nioJava File ApiDirectoryStreamGlob
Published: 06.07.2017
Difficulty: BEGINNERS
Runtime: 00:05:59

  Makeing life easy with a virtual file system, called JimFS

Our project is about reading in files and processing them. When we write tests, we could of course simply write and read the files from our local harddrive, but that can get messy. Instead, I'll show you how to work with a fantastic little virtual file system, called JimFS, in this episode. You also learn about its advantages and disadvantages compared to your usual filesystems.

> > Watch Now
JimFSJava FilesystemsJava File APIjava.nio
Published: 05.07.2017
Difficulty: BEGINNERS
Runtime: 00:03:53

  Creating the domain classes: Series + Collection<Episodes>

Hibernate and the database tables are all set-up, now it's time to create the Java mappings for our series and episodes tables. You will learn about basic Hibernate mappings, as well as simple @OneToMany relationships.

> > Watch Now
@Entity@Table@OneToMany@ManyToOneBasic Hibernate Mappings
Published: 02.07.2017
Difficulty: BEGINNERS
Runtime: 00:05:35

  Setting up Hibernate

Now we have to connect our local H2 database with Hibernate and that's what we will do in this episode. You will learn how to setup and correctly configure Hibernate's SessionFactory from scratch in this episode.

> > Watch Now
HibernateSession Factoryhibernate.cfg.xml
Published: 29.06.2017
Difficulty: BEGINNERS
Runtime: 00:03:41

  Creating the needed database tables for our LazyInitializationException project

We are going to keep things simple: Imagine you are building a website for screencasts, just like the marcobehler.com website. So you are going to have episodes and series, and we are going to create database tables for both of these, in this episode.

> > Watch Now
Database TablesH2Create SQL
Published: 07.06.2017
Difficulty: BEGINNERS
Runtime: 00:05:40

  Creating and preparing our LazyInitializationException project with Gradle

Let's create a small project, to demonstrate how exactly the LazyInitializationException works. In this episode you will setup a plain vanilla gradle project, with Hibernate and H2 embedded database dependencies.

> > Watch Now
HibernateGradleProject Setup
Published: 06.06.2017
Difficulty: BEGINNERS
Runtime: 00:02:49

  Creating a mock Accounting Department Web Service

In the requirements episode I talked about having an existing third-party auditing service that we need to forward our data to. In this episode I'll show you a handy little trick on how to implement a mock for such a service, or any web service, in just a few lines.

> > Watch Now
Mock Web ServiceJetty
Published: 24.05.2017
Difficulty: BEGINNERS
Runtime: 00:04:10

  Creating the Project With Gradle and Adding all Dependencies

We know what we want to build, now we have just do it. This episode covers the complete project setup with Gradle, creating a project and adding all needed dependencies so that we can start to do some real programming.

> > Watch Now
GradleProject Setup
Published: 23.05.2017
Difficulty: BEGINNERS
Runtime: 00:02:31

  What we want to build : Our shiny Fintech-Startup Customer Requirements

Imagine we are working for a PayPal-like financial startup. So there are customers, bank accounts, credit cards etc. And in this episode you will learn what exactly we want to build, to start our Microservice journey. Strongly recommended for all other episodes of this series.

> > Watch Now
Project RequirementsFintechMicroservices
Published: 22.05.2017
Difficulty: BEGINNERS
Runtime: 00:03:46

  Installing Gradle - On Windows

A popular build system in the Java world is called Gradle. Learn how to install and configure it in less than 5 minutes.

> > Watch Now
GradleGetting StartedInstalling GradleJavaWindows
Published: 17.05.2017
Difficulty: BEGINNERS
Runtime: 00:03:09

  Installing Maven - On Windows

A popular build system in the Java world is called Maven. Learn how to install and configure it in less than 5 minutes.

> > Watch Now
MavenGetting StartedInstalling MavenJavaWindows
Published: 16.05.2017
Difficulty: BEGINNERS
Runtime: 00:03:20

  Installing Mercurial - On Windows

A bit less popular than Git, Mercurial is still a great version control system that a lot of companies and projects use. In this episode you'll learn how to install it on windows and configure it with sane defaults for a Java developer.

> > Watch Now
MercurialMercurial for Java Developers
Published: 15.05.2017
Difficulty: BEGINNERS
Runtime: 00:03:21

  Installing Git - On Windows

A lot of open companies and open source projects are using Git as a version control system. In this episode you'll learn how to install it on windows and configure it with sane defaults for a Java developer.

> > Watch Now
GitGit for Java Developers
Published: 12.05.2017
Difficulty: BEGINNERS
Runtime: 00:03:46

  Installing the JDK - on Ubuntu Linux

If you want to get started with developing in Java, there is only one thing you need. The Java Development Kit, also called JDK. But there's multiple different ones out there, like the Oracle JDK or OpenJDK and even multiple versions! . Find out which one to download and install in this episode - for a Ubuntu Linux workstation.

> > Watch Now
JavaJDKOracle JDKOpenJDKUbuntuLinux
Published: 11.05.2017
Difficulty: BEGINNERS
Runtime: 00:03:36

  Installing the JDK - on Windows

If you want to get started with developing in Java, there is only one thing you need. The Java Development Kit, also called JDK. But there's multiple different ones out there, like the Oracle JDK or OpenJDK and even multiple versions! Find out which one to download and install in this episode - for a Windows workstation.

> > Watch Now
JavaJDKOracle JDKOpenJDKWindows
Published: 10.05.2017
Difficulty: BEGINNERS
Runtime: 00:03:36

  Receiving Dates with HTTP GET or POST

What if you want to send a date as a string or int (think: yyyy-MM-dd or 1493277486) to a rest server and on the server want a nicely converted date object instead? You'll learn to do exactly that in this episode, including a nice little Spring Boot feature regarding dates.

> > Watch Now
SpringSpring Boot@RestControllerjava.util.Date@DateTimeFormat
Published: 08.05.2017
Difficulty: BEGINNERS
Runtime: 00:05:06

  How to delete records (users) - With plain Hibernate

Last but not least, we want to be able to delete records, or in our case users, from the database again. In this screencast you will learn how to delete one or many records from a database table with Hibernate.

> > Watch Now
SQL DeleteHibernateHQL
Published: 03.05.2017
Difficulty: BEGINNERS
Runtime: 00:02:36

  What's the difference between the java.persistence and the org.hibernate annotations?

Sometimes beginners get confused when they are about to import annotations like the @Table or @Entity annotation and then there are multiple options to choose from. I'll show you _which_ annotations you should use _when_ in this screencast.

> > Watch Now
JPAHibernatePersistence Annotations
Published: 27.04.2017
Difficulty: BEGINNERS
Runtime: 00:03:32

  Meet the EntityManager (or a quick JPA upgrade for our user management)

In case you did not know, there's something out there called JPA, the Java Persistence API. Hibernate speaks JPA and in this screencast you will find out how to use Hibernate with JPA and why you should or should not do it.

> > Watch Now
JPAHibernateEntityManagerEntityManagerFactory
Published: 25.04.2017
Difficulty: BEGINNERS
Runtime: 00:07:06

  How to easily change Spring Boot's embedded HTTP server port

If you are running Spring Boot in embedded mode, there's three ways how to change the servers.port, away from 8080. In this screencast you'll learn all three of them.

> > Watch Now
Spring BootEmbeddedJettyTomcatWeb Server
Published: 16.04.2017
Difficulty: BEGINNERS
Runtime: 00:03:04

  Use Spring Boot With Existing Glassfish Or Tomcat

What if you want to use your existing Glassfish or Tomcat server with Spring Boot? In this episode you will learn how to do traditional .war deployments with Spring Boot.

> > Watch Now
Spring BootGlassfishTomcatWar
Published: 15.04.2017
Difficulty: BEGINNERS
Runtime: 00:06:21

  Which web server/servlet container should you chose (and how?) for greenfield Spring Boot projects?

By default you do not have to install a web server to run Spring Boot applications. That's because Spring Boot comes with a choice of _embedded_ web servers. And in this episode, you will learn which one to chose for your greenfield project and how.

> > Watch Now
Spring BootJettyTomcatWeb Server
Published: 11.04.2017
Difficulty: BEGINNERS
Runtime: 00:04:19

  How to select and update records (users) - With plain Hibernate

A user management app would not make much sense if we only could save users to the database, like we did in the previos screencast. This time we want to select and update our saved users as well! Additionally we are going to learn more about the fancy features of a Hibernate Session.

> > Watch Now
SQL SelectSQL UpdateHibernateHQL
Published: 06.04.2017
Difficulty: BEGINNERS
Runtime: 00:07:11

  How to save records (users) to the database - With plain Hibernate

Imagine you want to build a simple usermanagement, i.e. register or save users to a database. A user has an id, an email and a password, real simple. And in this screencast we will learn how to do just that: Save a user to the database with Hibernate.

> > Watch Now
Hibernate ConfigurationHibernate.cfg.xmlHibernateSQLInsert IntoHQL
Published: 05.04.2017
Difficulty: BEGINNERS
Runtime: 00:07:07

  Getting a head start with an embedded database

Sure, you could install MySQL or Postgres on your local developer machine. But I am going to show you a better and faster way: Using the fantastic H2 database available at http://www.h2database.com

> > Watch Now
H2DatabaseJDBC
Published: 24.02.2017
Difficulty: BEGINNERS
Runtime: 00:04:19

  Opening up connections to the database (or meet the SessionFactory)

In the previous screencast you learned how to open up connections to our H2 Database with plain JDBC. Now you are going to learn about doing the same thing with Hibernate. Your first, vanilla Hibernate connection to the database. Yay!

> > Watch Now
H2DatabaseHibernate
Published: 24.02.2017
Difficulty: BEGINNERS
Runtime: 00:04:51

  Enable SQL Logging - With Plain Hibernate

Enabling SQL Logging with plain Hibernate features. (no log4j, logback or something similar)

> > Watch Now
H2DatabaseHibernateSQL Logging
Published: 24.02.2017
Difficulty: BEGINNERS
Runtime: 00:03:21

  The simplest and fastest Hibernate 5.x project setup (also, which Hibernate Version to choose?)

Getting started with a greenfield Hibernate project might look like a pain, but it doesn't have to be. Learn how you get up and running with plain Hibernate 5.x in no time.

> > Watch Now
Published: 10.02.2017
Difficulty: BEGINNERS
Runtime: 00:03:21

  Being picky with our /rest/{paths}/ - (or: all things you must know about @PathVariables)

What is a @PathVariable and what are its dirty little secrets (hint: regex)? Find out here!

> > Watch Now
Spring Boot@RestController@PathVariableRegex
Published: 09.02.2017
Difficulty: BEGINNERS
Runtime: 00:05:26

  Receiving simple values (or: strings, ints, dates etc) with HTTP GET

How can you receive simple values like Strings or Numbers or Dates with your Rest Server via HTTP GET? Find out here!

> > Watch Now
Spring Boot@RequestParamHTTP GET
Published: 12.01.2017
Difficulty: BEGINNERS
Runtime: 00:05:59

  Receiving simple values (or: strings, ints, dates etc) with HTTP POST

How can you receive simple values like Strings or Numbers or Dates with your Rest Server via HTTP POST? Find out here!

> > Watch Now
Spring Boot@RestController@RequestParamHTTP POST
Published: 12.01.2017
Difficulty: BEGINNERS
Runtime: 00:04:54

  Receiving complex JSON and XML

How can you receive simple json or xml or complex forms with your Rest Server? Find out here!

> > Watch Now
Spring Boot@RestController@RequestBodyJSONXML
Published: 12.01.2017
Difficulty: BEGINNERS
Runtime: 00:05:26

  The Perfect Project Setup with Maven

Are you wondering what the simplest, fastest and best method is to get started with a Spring Boot project based on Maven? Just watch this video.

> > Watch Now
Published: 28.12.2016
Difficulty: BEGINNERS
Runtime: 00:02:39

  The Perfect Project Setup with Gradle

Are you wondering what the simplest, fastest and best method is to get started with a Spring Boot project based on Gradle? Just watch this video.

> > Watch Now
Published: 28.12.2016
Difficulty: BEGINNERS
Runtime: 00:03:13

  Hello World - Accepting GET Requests

Want to get a quick start with Spring Boot and get a fully working GET Rest Controller working in a couple of minutes? . Then this video is for you.

> > Watch Now
Published: 28.12.2016
Difficulty: BEGINNERS
Runtime: 00:03:57

  Hello World - Returning JSON

Sending and receiving plain text is boring. Let's send some JSON instead!

> > Watch Now
Published: 28.12.2016
Difficulty: BEGINNERS
Runtime: 00:03:38

  Hello World - Accepting POST Requests

"GET"ting boring? Try "POSTING" and receiving some JSON, instead.

> > Watch Now
Published: 28.12.2016
Difficulty: BEGINNERS
Runtime: 00:04:03

  Deploying Spring Boot Applications with Maven

Deploying Java application has never been easier. Find out what Spring boot has to offer.

> > Watch Now
Published: 28.12.2016
Difficulty: BEGINNERS
Runtime: 00:02:32

  Deploying Spring Boot Applications with Gradle

Deploying Java application has never been easier. Find out what Spring boot has to offer

> > Watch Now
Published: 28.12.2016
Difficulty: BEGINNERS
Runtime: 00:02:42