Google:

adverisment

Spring Boot tutorial

details img

What is Spring Boot?

Spring Boot is an extension of the Spring framework that simplifies the development of Java applications by:

  • Providing pre-configured templates.
  • Reducing boilerplate code.
  • Offering an embedded web server (Tomcat, Jetty).
  • Supporting microservices architecture.

Setting Up Spring Boot

1. Prerequisites

  • Java Development Kit (JDK) 8 or later.
  • An IDE (e.g., IntelliJ IDEA, Eclipse, or VS Code with Java support).
  • Maven or Gradle for dependency management.

2. Create a Spring Boot Project

Option 1: Use Spring Initializr (Recommended)

  • Go to Spring Initializr.
  • Choose:
    • Project: Maven or Gradle.
    • Language: Java.
    • Spring Boot version: Latest stable version.
    • Add dependencies like Spring Web, Spring Data JPA, and H2 Database (if needed).
  • Click Generate to download the project.

Option 2: Using IDE Plugins

Most IDEs like IntelliJ IDEA and Eclipse have built-in support to create Spring Boot projects.


Structure of a Spring Boot Application

A typical Spring Boot application contains:

  • src/main/java: Your application code.
  • src/main/resources: Configuration files (e.g., application.properties).
  • Dependencies: Managed via pom.xml (Maven) or build.gradle (Gradle).

Building Your First Spring Boot Application

1. Main Class

Spring Boot applications have a @SpringBootApplication-annotated main class:

java
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

2. Creating a REST Controller

Add a simple REST API:

java
package com.example.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @GetMapping("/hello") public String sayHello() { return "Hello, Spring Boot!"; } }

Run the application and navigate to http://localhost:8080/hello to see the response.


Common Spring Boot Annotations

Core Annotations

  • @SpringBootApplication: Entry point of the application.
  • @RestController: Combines @Controller and @ResponseBody.
  • @GetMapping, @PostMapping, @PutMapping, @DeleteMapping: Map HTTP requests to handler methods.

Dependency Injection

  • @Autowired: Injects dependencies automatically.
  • @Component: Marks a class as a Spring-managed component.

Database Integration

1. Add Dependencies

In pom.xml, include:

xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency>

2. Configure application.properties

properties
spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

3. Define an Entity

java
package com.example.demo.model; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; @Entity public class User { @Id @GeneratedValue private Long id; private String name; // Getters and setters }

4. Create a Repository

java
package com.example.demo.repository; import com.example.demo.model.User; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { }

5. Access Data in a Controller

java
package com.example.demo.controller; import com.example.demo.model.User; import com.example.demo.repository.UserRepository; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/users") public class UserController { private final UserRepository userRepository; public UserController(UserRepository userRepository) { this.userRepository = userRepository; } @GetMapping public List<User> getAllUsers() { return userRepository.findAll(); } @PostMapping public User createUser(@RequestBody User user) { return userRepository.save(user); } }

Advanced Topics

  1. Spring Boot Security: Add authentication and authorization.
  2. Spring Boot Actuator: Monitor and manage your application.
  3. Microservices: Use Spring Cloud for building microservices.
  4. Testing: Use Spring Boot's testing libraries for unit and integration tests.

Leave Comment