Introduction

Spring Boot is known for its simplicity and productivity. A significant part of this ease of development comes from the use of annotations. Annotations allow developers to configure various aspects of a Spring Boot application without the need for extensive XML or Java-based configurations. In this quick guide, we'll introduce you to some essential Spring Boot annotations with sample code.


@SpringBootApplication

The @SpringBootApplication annotation is the entry point for a Spring Boot application. It combines three commonly used annotations:

  • @Configuration: Indicates that the class contains Spring Bean configurations.
  • @EnableAutoConfiguration: Enables Spring Boot's auto-configuration features.
  • @ComponentScan: Scans for Spring components (beans) in the specified package.

Here's how to use it:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MySpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
}
}

@RestController

The @RestController annotation is used to create RESTful web services. It combines @Controller and @ResponseBody. It simplifies the process of returning JSON responses from controller methods.

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!";
}
}

@RequestMapping

The @RequestMapping annotation is used to map a URL request to a specific controller method. You can specify the URL path, HTTP methods, and other parameters.

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class GreetingController {
@GetMapping("/greet")
public String greet() {
return "Hello, World!";
}
}

@Autowired

The @Autowired annotation is used for automatic dependency injection. It allows you to inject a bean into a field, constructor, or method.

import org.springframework.beans.factory.annotation.Autowired;
@RestController
public class MyController {
private final MyService myService;
@Autowired
public MyController(MyService myService) {
this.myService = myService;
}
}

@Value

The @Value annotation is used to inject values from application properties or configuration files into Spring components.

import org.springframework.beans.factory.annotation.Value;
@RestController
public class MyController {
@Value("${app.title}")
private String appTitle;
}

Conclusion

Spring Boot annotations simplify the development of Spring applications. They provide a cleaner and more concise way to configure your application, manage dependencies, and define web services. By mastering these annotations, you'll be well-equipped to create efficient and maintainable Spring Boot applications.