Annotations
Annotation is a form of metadata which provides data about a program that is not part of the program itself. Annotations do not have direct effect on the operation of the code they annotate.
@Bean - indicates that a method produces a bean to be managed by Spring.
@Service - indicates that an annotated class is a service class.
@Repository - indicates that an annotated class is a repository, which is an abstraction of data access and storage.
@Configuration - indicates that a class is a configuration class that may contain bean definitions.
@Controller - marks the class as web controller, capable of handling the requests.
@RequestMapping - maps HTTP request with a path to a controller method.
@Autowired - marks a constructor, field, or setter method to be autowired by Spring dependency injection.
@SpringBootApplication - enables Spring Boot autoconfiguration and component scanning.