ARTICLE AD BOX
I am getting this error when I try to start a Spring Boot application.
Parameter 0 of constructor in org.codefinity.com.codefinity.firstrestapibooks.controller.BookController required a bean of type 'org.codefinity.com.codefinity.firstrestapibooks.service.BookService' that could not be found
Here is my book controller class
package org.codefinity.com.codefinity.firstrestapibooks.controller; import lombok.AllArgsConstructor; import org.codefinity.com.codefinity.firstrestapibooks.DTO.BookRequestDTO; import org.codefinity.com.codefinity.firstrestapibooks.DTO.BookResponseDTO; import org.codefinity.com.codefinity.firstrestapibooks.model.Book; import org.codefinity.com.codefinity.firstrestapibooks.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import java.util.List; @Controller @RequestMapping("/books") public class BookController { @Autowired private final BookService bookService; public BookController(BookService bookService){ this.bookService = bookService; } @GetMapping public List<BookResponseDTO> findAllBooks(){ return bookService.findAllBooks(); } @PostMapping public BookResponseDTO createBook(@RequestBody BookRequestDTO book){ return bookService.createBook(book); } @PutMapping("/{id}") public BookResponseDTO updateBook(@PathVariable String id, @RequestBody BookRequestDTO book){ return bookService.updateBook(id, book); } @DeleteMapping("/{id}") public void deleteBook(@PathVariable String id){ bookService.deleteBook(id); } }And here is my BookServiceImpl class
package org.codefinity.com.codefinity.firstrestapibooks.service; import lombok.AllArgsConstructor; import org.codefinity.com.codefinity.firstrestapibooks.DTO.BookRequestDTO; import org.codefinity.com.codefinity.firstrestapibooks.DTO.BookResponseDTO; import org.codefinity.com.codefinity.firstrestapibooks.DTO.MapperBook; import org.codefinity.com.codefinity.firstrestapibooks.model.Book; import org.codefinity.com.codefinity.firstrestapibooks.repository.BookRepository; import org.springframework.stereotype.Service; import java.util.List; @Service public class BookServiceImpl { private final BookRepository bookRepository; public BookServiceImpl(BookRepository bookRepository){ this.bookRepository = bookRepository; } List<BookResponseDTO> findAllBooks() { return bookRepository.getAllBooks().stream() .map(MapperBook::modelToRespondDto) .toList(); } public BookResponseDTO createBook(BookRequestDTO book) { Book modelBook = MapperBook.dtoRequestoModel(book); Book repositoryBook = bookRepository.addBook(modelBook); return MapperBook.modelToRespondDto(repositoryBook); } public BookResponseDTO updateBook(String id, BookRequestDTO book) { Book modelBook = MapperBook.dtoRequestoModel(book); Book repositoryBook = bookRepository.updateBook(id, modelBook); return MapperBook.modelToRespondDto(repositoryBook); } public void deleteBook(String id) { bookRepository.deleteBook(id); } }Here is my pom.xml file
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>4.0.6</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>org.codefinity</groupId> <artifactId>first-rest-api-books</artifactId> <version>0.0.1-SNAPSHOT</version> <name>com.codefinity.firstrestapiooks</name> <description>com.codefinity.firstrestapiooks</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>25</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webmvc</artifactId> <version>4.1.0-RC1</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>4.1.0-RC1</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webmvc-test</artifactId> <version>4.1.0-RC1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.modelmapper</groupId> <artifactId>modelmapper</artifactId> <version>3.2.6</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.46</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>I am not sure how to fix this issue, as I have searched and saw nothing. Any help would be appreciated.
