Wow, this amazing 34 hours video course Spring Framework 5: Beginner to Guru
(with SpringBoot 2.0) is really quite massive! Learning almost full time, it took me a little over 2 weeks to work through. Ok, I admit, I only really completed ~99% because I skipped a few cookbook goodies which are currently completely irrelevant for me.
The main part of this course covers the following Spring modules:
- Spring Boot 2 with Spring Framework 5
- Spring Data JPA with Hibernate, MongoDB and DataJpaTest
- Spring MVC with Thymeleaf + MockMVC + WebTestClient
- Spring WebFlux (Reactive Programming)
- RESTful Webservices with Spring MVC + Spring WebFlux
inkl. using Swagger for REST API documentation
- Spring Security
Additonally there are plenty of extras and cookbook lessons for:
- MySQL, Postgres, MariaDB, DB2, Oracle
- MongoDB, Redis, Cassandra, Neo4J
- Content Negotiation in Spring REST API
- JMS Messaging, RabbitMQ and RabbitMQ
- Project Lombok and MapStruct
- using SpringBoot with Maven + Gradle
- Docker, also used for the databases and message systems
For the most part John (the author) is using Test Driven Development (TDD) with JUnit 4 and Mockito and even uses Continuous Integration Builds (with CircleCI). And the source code of all lessons is available on his GitHub account. Many lessons end with Little Quizzes to repeat the learned topics.
What's missing or could be improved?
There are still one or two guys from a tech support team who answer questions, but John did not answer any questions anymore since October 2017. Considering the low price, especially on an Udemy sale, I can well understand that. Unfortunately that leaves some "why" questions open, which are often impossible to answer by others. But there is also a private Slack channel, where John is active (invitation in the course). Also many students answered questions of co-students, as I did as well. I think that's also a good reflection about what I know and and what I've missed.
For most features John first shows how something works, then there is an assignment where the students have to try it by themselves. The solution is in almost all cases completely analogous to what was presented right before. For unexperienced developers this might be a great opportunity - unless you don't simply do copy+paste+amend ;-) But for experienced developers this can become a bit lengthy and boring. What I prefer instead is to solve problems, e.g. get a failing JUnit test and fix the code or add a little feature by own research. But this might be a personal preference.
By the way, you learn a lot more if you apply the learned topics right away in a little side project instead of an artificial teaching project. See also my blog article about Learning software technologies (and others topics) with Udemy
. But there is also some risk in early application of newly learned topics in a side project - I might write ab blog article about that risk too in the future.
What have I learned?
Having used (the "original") JEE for the last years and being out of Spring for about 7 years (my last version was Spring 2.5 with which annotation configuration was introduced), this course was a great refresh of the core and some of the modules and a good introduction to the other Spring modules as well as some additional technology. Most of the Spring Framework is really easy to grasp with JEE experience.
This course it will also remain a great source to look up if need comes up in real life projects. For sure, I am not as good with Spring yet as with JEE, but working through it made me confident to be able to get to the same level quite soon after actually using it on a daily basis.