Spring Framework tools for Java developer


If you are a Java developer and wants to learn Spring framework then you have come to the right place. In this article, I will share three ways to learn Spring framework, but before that let's understand what is a spring framework and why Java developers should learn Spring framework? Well, Spring is a framework which assists you to develop Java application by following some best practices, particularly the principle of dependency injection and inversion of control. 

As per this principle, instead of class asking for its dependency, the framework provides them at runtime. Following these principles improves your code quality because it reduces coupling between different part of your applications e.g. between modules and classes, which makes it easier to test and develop.

Spring Core
Spring core is the core framework which provides the container required for implement Dependency injection and inversion of control. It also provides a handy library with a lot of useful functionalities similar to Apache commons but most importantly you always need Spring core because Spring MVC, Spring Security all builds upon that.

Now the big question is which book to read and which course to join? Well, when it comes to joining a course you should always look when it is last updated and how many students have already joined it. That speaks a volume about the content and popularity of the course and on that parameter, I found Spring Framework Master Class to be the best course to start with.

Spring Security
Spring Security is used to provide out-of-the-box authentication and authorization support. Since most of the Java web application need login and access control mechanism, you will find Spring MVC and Spring Security used together.

The framework is very sophisticated and provides several features to support authentication and authorization using a database, LDAP, or any custom source.
The Spring in Action 4th Edition book touches a part of Spring Security but doesn't provide full coverage i.e it doesn't cover OAuth or OAuth 2.0 and many advanced concepts which is covered in the Spring Security Certification Class course by Eugen Paraschiv.

If you are a beginner who is starting with Spring security or someone who already know Spring security and wants to improve your knowledge of Spring security, this course is one of the most up-to-date resources. It has been recently updated to cover Spring Security 5.0 as well.

Spring Boot

It's one of the relatively new members of the Spring family. As the name suggests this framework help with the bootstrap process. One of the hardest thing with Spring is to start with i.e. set up and project, where you need to create a lot of configuration in XML or use a lot of annotations in Java classes and then create a WAR file and deploy into a web server to run it.

There was no simple way to start a Spring application just like you start a Java application by writing a main() method. Spring boot solves that problem by simplifying the bootstrap process.

It also provides options to embed a web server for quick development. In short, Spring Boot gives you all the power of the Spring Framework without all of its complexity.

To start with you can join Learn Spring Boot - Rapid Spring Application Development course from Udemy, it's a great course with several hands-on examples. You will not only learn Spring boot but also Spring MVC to develop web part, security to secure your application, JDBC to connect to the database and even learn how to explore your services like REST.

**MORE:**

[Spring boot REST example](http://candidjava.com/tutorial/spring-boot-rest-service-example/)