Recently, I became interested in learning the Spring framework for Java. After checking out the courses available on Udemy, I went with Spring & Hibernate for Beginners (includes Spring Boot) by Chad Darby.
Presentation
One of the most notable things about this course is the amount of work and the high level of polish the instructor put into its presentation. He complements his lectures with a staggering array of slides featuring helpful diagrams, code samples, and animation that enhance the learning experience.
When explaining his code, the instructor inserts graphical pointers into the video to highlight key components. He often compares these components to images of previous code samples to illustrate how different parts of a Spring application interact with each other. This attention to detail makes it easy to follow what he’s doing in his code, as well as why.
The instructor delivers each lecture with an exuberance I found a little surprising at first, but I quickly warmed to his style. He speaks with an excitement for his subject and for teaching that makes the time spent coding along with him an enjoyable, as well as educational, experience.
The quality of the voice recording is excellent and consistent in its clarity.
Content
The course broadly covers:
- Spring – a popular framework for developing enterprise Java applications
- Spring Boot – a platform that simplifies the setup required by Spring
- Hibernate – a framework for mapping Java classes to relational database tables
The course also takes a brief look at Thymeleaf, a template engine for constructing views used in both web and non-web applications.
The instructor begins with an overview of the Spring framework, then guides students through setting up the development environment, which includes tools such as Apache Tomcat and the Eclipse IDE.
Of course, students are free to use a different IDE if they prefer. But one of the nice things about using Eclipse is that the instructor highlights a number of its features and keyboard shortcuts, so for those wanting to familiarize themselves with a new IDE, this course presents a good opportunity to do so.
Once past the environment setup, the lectures generally fall into two main types. A number of videos provide an overview of concepts important to Spring, while other videos demonstrate the implementation of these concepts.
Each overview includes diagrams, snippets of code, explanations of what problem a particular concept was developed to solve, and a simple outline of the steps the instructor then follows during the implementation phase.
I found these overviews extremely helpful in understanding most concepts before implementing them. They’re also fairly detailed, and I think they’d be useful as a concise way to go back and review topics as needed.
In the implementation videos, the instructor uses a number of projects to show how to configure Spring and use some of its modules including Spring MVC, Spring AOP, and Spring Security. Additionally, students will learn how to build a simple CRUD application with Hibernate and how to use Spring to develop RESTful web services.
The instructor also shows how Spring Boot can help developers build a new application with a minimum of configuration, one of the trickier aspects of working with Spring. While Spring Boot represents an “opinionated view” of the framework according to its developers, it makes it much easier to get started.
The course is meticulous and thorough in structure, which makes the material easy to understand and follow. In some cases, if there are multiple ways to do something, such as when configuring a Spring application or setting up dependency injection, the instructor demonstrates each approach.
One thing I would have liked to see in this course is an example of a CRUD application that incorporates some sort of business logic. While it does a great job explaining how to structure an app using controller, service, and data access layers, it left me wondering how best to incorporate code that doesn’t belong to any of the CRUD functions.
However, since there are various blog posts and articles discussing Spring application architecture available on the internet, this omission isn’t a huge one.
Final Thoughts
I really liked how this course was put together and presented. The instructor delivers his lectures in a personable style and his organized approach makes the material easy to digest. I even learned some things that will be useful outside of Spring development, including a better understanding of Maven and some Eclipse features I wasn’t previously familiar with.
The instructor has also been doing an excellent job keeping the material updated. Since its initial release, he’s posted answers to frequently asked questions in sections where they’re relevant. His Thymeleaf video lectures are another recent addition, having gone up while I was working through the course.
While there might be a few places where I wished the course went into greater depth, ultimately it’s a good choice for developers interested in the Spring framework.
Rating: 4.5 out of 5