Die Klasse wird im Standardkonstruktor nicht initialisiert
Posted: 05 Jan 2025, 09:11
Ich verwende Lombok, um andere Klassen zu erstellen. Nachdem Sie das Maven-Projekt im Zielordner erstellt haben, können Sie sehen, dass die Konstruktoren generiert und mein Projekt zusammengestellt wurden. Beim Startversuch wurde jedoch der folgende Fehler angezeigt: java: java: Variable NewsService wurde im Standardkonstruktor nicht initialisiert. Beim manuellen Erstellen des Konstruktors funktioniert jedoch alles.
Es ist mein Controller:
Controller im Zielordner:
POM-Datei:
Ich habe versucht, Abhängigkeitsversionen zu ändern, das Projekt neu zu erstellen und die Annotationsverarbeitung in IntelliJ Idea zu aktivieren
Es hat mir geholfen, dass ich die @Repository-Annotation für hinzugefügt habe mein JPA-Repository (import org.springframework.stereotype.Repository) und dieses Stück Code in der POM-Datei (möglicherweise haben Sie andere Versionen von Plugins)
Es ist mein Controller:
Code: Select all
@RestController
@RequestMapping("/news")
@RequiredArgsConstructor
public class NewsController {
private final NewsService newsService;
@PostMapping("/create-news")
public ResponseEntity createNews(CreateNewsDto dto) {
newsService.createNews(dto);
return ResponseEntity.status(HttpStatus.CREATED).build();
}
}
Code: Select all
@RestController
@RequestMapping({"/news"})
public class NewsController {
private final NewsService newsService;
@PostMapping({"/create-news"})
public ResponseEntity createNews(CreateNewsDto dto) {
this.newsService.createNews(dto);
return ResponseEntity.status(HttpStatus.CREATED).build();
}
@Generated
public NewsController(final NewsService newsService) {
this.newsService = newsService;
}
}
Code: Select all
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
org.springframework.boot
spring-boot-starter-parent
3.4.1
org.example
news3
0.0.1-SNAPSHOT
news3
news3
17
org.springframework.boot
spring-boot-starter-data-jpa
org.springframework.boot
spring-boot-starter-web
org.postgresql
postgresql
runtime
org.projectlombok
lombok
true
provided
1.18.30
org.springframework.boot
spring-boot-starter-test
test
org.mapstruct
mapstruct
1.5.5.Final
org.apache.maven.plugins
maven-compiler-plugin
org.projectlombok
lombok
org.mapstruct
mapstruct-processor
1.5.5.Final
org.springframework.boot
spring-boot-maven-plugin
Es hat mir geholfen, dass ich die @Repository-Annotation für hinzugefügt habe mein JPA-Repository (import org.springframework.stereotype.Repository) und dieses Stück Code in der POM-Datei (möglicherweise haben Sie andere Versionen von Plugins)
Code: Select all
org.apache.maven.plugins
maven-compiler-plugin
3.13.0
org.mapstruct
mapstruct-processor
1.5.5.Final
org.projectlombok
lombok
1.18.30
org.projectlombok
lombok-mapstruct-binding
0.2.0
-parameters