Spring Boot – The Framework of Frameworks
November 30, 2022 0

By – Akshat Gupta

Java programming language is one of the best programming languages for developing a web-based application in J2EE. 

The 21st century is purely the technology-focused century, we have been using services like instant messaging, social media, streaming platforms, etc under the tip of our fingers, some examples are Uber, Google, Netflix, Pinterest, Instagram, Amazon, Twitter, Spotify, and many more. 1 common thing among all applications? well, all of these applications are java based.

Java is used in a very wide range of Mobile Applications, Artificial intelligence, Web applications, Big Data technology, Gaming applications, Business applications, Embedded systems, Cloud applications, and Scientific apps.

J2EE is a platform-independent, Java-centric environment for developing, building and deploying Web-based enterprise applications. The two key technologies of J2EE mainly are JSP and Servlet. It’s important in the development of any kind of enterprise-level web application.

J2EE is a specification for a collection of software components to enable the development of multi-tiered web-based applications.J2EE provides APIs that let developers create workflows and make use of resources such as databases or web services.

J2EE contains a set of services, APIs, and protocols that provide the functionality for developing multitiered, Web-based applications.

Spring Boot

There are a lot of frameworks to provide structure and common patterns to make the process of building applications easier.  Java Frameworks are basically a collection of classes or a collection of API’s.

Before talking more about Spring Boot, here is a brief on Spring Framework.

Spring is a very popular application framework in java. Spring Framework provides the pattern and the structure for our java application.

Why Spring Framework?

Spring Framework provides more flexibility as well as the model view controller architecture (Spring MVC) is entirely based on interfaces unlike Struts or Hibernate so it is easy to make required changes in implementation without affecting the client side. In Spring we got interfaces so that we can write our own implementation.

That’s the benefit of Spring Framework. Users can write their own implementation and make an interface and can use it as per need.

Spring Framework

There are lots of features like its an open source, lightweight application framework and it reduces the overall complexity of the program. There are various tools in Spring Framework that can be used. Spring Framework is also called “Framework of Frameworks” because it can integrate the hibernate code with the Spring code and it can be used in the application. Spring Framework is an array of resources that is available to us and can be used in writing Business Logic.

Spring was released on Feb 2003 by Rod Johnson

Spring is an ecosystem starting from mobile apps to web apps. Spring framework is used very widely rather than other frameworks because it’s a distinct division between JavaBean models, Controller, and Views. that means an MVC architecture so Model View and Controller so all these three are different divisions. It is very flexible as it makes use of interfaces so there are no restrictions over here, the Spring MVC web tiers are typically easier to test and we also got testing modules like the JUnit test. Spring Controllers are configured via IoC and it offers better integration with view technologies other than JSP. Spring Framework has the integration API.

Spring Framework is awesome then why Spring Boot is more popular:-

Spring manages the lifecycle of java whereas in Spring boot there is no need to worry about configuring a data source. Spring is basically a web application framework based on java and provides tools and libraries to create web applications, it’s more complex than Spring Boot but if we talk about Spring Boot, it is an extension of Spring and is used to create a spring application project which users can just run or execute. Spring Boot is less complex than Spring Framework.

Spring Boot

Spring Boot is one of the most widely used frameworks to build web applications in Java.

Spring boot is basically a Spring Module that makes the use of Spring Framework simple. It is used to create stand-alone Spring-based applications. It removes a lot of configuration and dependencies and aims to Rapid Application Development.

The Spring Boot Framework comes with auto dependency resolution, embedded HTTP servers, auto-configuration, management endpoints and spring boot CLI.

Spring Boot makes it easy to create spring-powered production-grade applications. 

Spring Boot provides many features like Spring CLI, Starter Dependency, Auto Configuration, Spring Actuator, Spring Initializer, Logging and Security.

Spring Boot provides Stability and it is based on JVM and it can connect to any java project and it provides RAD (Rapid Application Development) and it provides good connectivity with other technologies(web technologies or Databases….) it provides good flexibility and it is open source.

Architecture

A three-layered architecture is used for making a Spring Boot application/program.

A spring boot application basically includes three parts, the Controller layer, the Service layer, and the Data layer.

Controller layer or the API layer, a controller handles the navigation between the views and process incoming REST API request, and provide a response for the requests.

Service layers are where we write our business logic, and it makes communication easy between Controller and Data layer.

The data layer / DAO layer or the Repository layer is where we put the persistence logic, it provides a CRUD interface and it also encapsulates the details of the persistence layer

Setting Up Spring Boot :

The basic requirements to set up Spring Boot are An IDE (like Eclipse IDE) Java 8+, Maven.

Download Java 8, Apache maven, and set up environment variables, and complete the basic setups after that. 

From Eclipse download the STS and set it up.

How to create a basic program –

In Eclipse IDE go to file -> new -> Spring Starter Project

Click next, and then choose Project name, Group id, Artifact id, package name, Description and click next

Now select the dependencies needed for the project.

Before going to a basic program here is an overview of a few Annotations.

Some basic annotations like 

@SpringBootApplication – It is used with the main class. This annotation is used to enable auto-configuration and to indicate the application that this is a Spring Boot application. @SpringBootConfiguration, @EnableAutoConfiguration, and @ComponentScan are clubbed into this annotation.

@RestController – this annotation is responsible for handling all incoming client requests and delegates them to the appropriate service methods depending on the URI pattern of the respective request.

@Component – user can add objects of the class annotated with this annotation into the application context.

@Autowired – this annotation of the spring framework enables the user to inject the object dependency implicitly. It internally uses a setter or constructor injection.

@Value – It gives users a convenient way to inject property values into the spring component.

@Configuration – Annoying a class with this annotation means the class can be used by the spring IoC container as a source of a bean definition. A class annotated by this annotation is used by Spring Containers as a source of a bean definition.

@Service –  this annotation is used in the class where the user wants to put his business logic.

@RepositoryThe repository does all the operations related to the database. It creates data access objects which access the database directly.

There are many more annotations available which will be cleared slowly by practice.

Basic hello world program:-

Under src/main/java, under package com. example.demo, creating HelloWorldApp.java

HelloWorldApp.java

Import org. spring framework. boot.SpringApplication;

Import org. spring framework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication      // this annotation is used to enable auto-configuration and to  indicate the application that this is Spring Boot application

public class HelloWorldApp {

           public static void main(String[] args) {

                     SpringApplication.run(HelloWorldApp.class, args);

           }

}

 

Now create a controller class. So click on the package and go to the new class and name it as AppConfiguration. And now click finish.

AppConfigiguration.java

package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController 

public class AppConfig {

    @RequestMapping(“/hello”)     // we have to insert the URL path

     public string hello()

              {

                       return “Hello World!”;

               }

}

 

Now configure the port number in application.properties, it’s under src/main/resources –

server.port=8080

Now right-click on your project and run the program.

Go to the browser and type in the search bar – “http://localhost:8080/hello

Conclusion

“Spring and Spring Boot are really powerful tools for developing web applications. Applications developed with Spring Boot are robust, loosely coupled and easy to use. Spring gives flexibility and versatility and Spring Boot focuses on easy development with less code length and less configuration which helps the developers to build an application efficiently. 

Spring Boot speeds up the development process and deployment process with many of its features. Ultimately Spring Boot offers a lot of benefits for the Developers to build Enterprise  Java Applications.”

 

Leave a comment