Hey guys this is a one stop shop for all the resources related to Spring and Spring boot, follow these posts in the order that i have written to learn complete about Spring and Spring boot. I will be adding more tutorials as i learn new topics.

What is Spring?


Spring is a Java web framework build to create enterprise production ready application.

When we create a Java enterprise application, we need to do a lot of configurations, we need to add lot packages, jars and also we need to add database support as well.

Spring is Java web framework it will allows us to do lot of things. Spring provides a bunch of modules for various configurations, we can use those modules to build our application. But to use all these modules, we need to do lot of configurations to up and run the application.

Long story short, Spring framework helps us to create production ready application but we need to do lot of configuration.

What is Spring Boot?


Spring boot is a tool introduced by Spring Team, to create Spring based applications quickly and easily. It provides zero configuration support. We can concentrate only on the actual business logic rather than concentrating on the configuration.

Spring boot is not a framework, it’s a tool or extension to create Spring based applications. Spring boot internally uses Spring.

Advantages of using Spring boot


  • Rapid application development
  • Managing the dependencies
  • Auto configuration support
  • Support for embedded servers
  • Support for creating microservices

Dependency Injection


In typical Java applications, we as a developer, create Java objects. But when we are working with enterprise production grade applications, this is not a good idea. Because creating the objects, destroying object and managing their lifecycle is not easy. So instead of we create the objects, we give a control over to the framework to do manage the lifecycle of objects. This is called Inversion of Control

To use Inversion of Control, we need to use Dependency Injection, it a design pattern it will allows us to create Java objects without using new keyword.

When the spring boot application runs, spring has a factory or container, it creates the Beans for us, next whenever we ask for the particular bean, first it will check in the container, if its present then it gives the already created object otherwise it creates new objects for us.

Spring Initializr


Spring team provides an online web tool to create Spring boot starter project. You can find the Spring initializer tool on this URL https://start.spring.io/

To create spring boot project, all you need to do is Enter the project details, spring boot version and add the dependencies. You can check the following the article to see how to create spring boot project using Spring initializer.

Examples


Spring Boot and Thyemeleaf


Spring Boot and JdbcTemplate


Spring Annotations


Following are the spring annotations

Spring Security Examples


Following are the spring security examples

Spring Boot and JPA Examples


Angular and Spring Boot Full Stack App


React (React Hooks)and Spring Boot Full Stack App