Mapstruktur und Springboot 3Java

Java-Forum
Anonymous
 Mapstruktur und Springboot 3

Post by Anonymous »

Ich habe ein Problem, bei dem Spring Boot 3 meine Implementierung von Mapstruct Mapper nicht finden kann. Die meisten Fragen und Antworten, die ich online habe, scheinen abzudecken, wo Mapstruct die Mapperimpl als Bean nicht erstellt hat, aber ich habe Implementierungsklassen generiert, die als @components kommentiert wurden. Prozessorpfad. < /p>

Code: Select all

org.apache.maven.plugins
maven-compiler-plugin

${java.version}
${java.version}


org.mapstruct
mapstruct-processor
${mapstruct.version}




Meine Implementierungsklasse ist unter Ziel/generierten Quellen/Annotationen vorhanden, und ich habe das Komponentmodel auf Frühling gesetzt, um sicherzustellen, dass es als @component:
kommentiert wirdpackage com.example.demo;

import javax.annotation.processing.Generated;
import org.springframework.stereotype.Component;

@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2025-04-12T09:58:09+0000",
comments = "version: 1.6.3, compiler: javac, environment: Java 21.0.5"
)
@Component
public class MyMapperImpl implements MyMapper {

@Override...
< /code>
Bei Ausführung der App oder sogar beim Ausführen von Tests während der Ausführung von MVN Clean Installation erhalte ich die folgenden Fehler: < /p>
2025-04-12T09:58:45.338Z WARN 12073 --- [demo] [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'demoController' defined in file [/workspaces/spring/mapstruct/target/classes/com/example/demo/DemoController.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'com.example.demo.MyMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
2025-04-12T09:58:45.340Z INFO 12073 --- [demo] [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2025-04-12T09:58:45.346Z INFO 12073 --- [demo] [ main] .s.b.a.l.ConditionEvaluationReportLogger :

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2025-04-12T09:58:45.363Z ERROR 12073 --- [demo] [ main] o.s.b.d.LoggingFailureAnalysisReporter :

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in com.example.demo.DemoController required a bean of type 'com.example.demo.MyMapper' that could not be found.

Action:

Consider defining a bean of type 'com.example.demo.MyMapper' in your configuration.
< /code>
Ich bin mir ziemlich sicher, dass ich eine Bean habe, wie ich com.example.demo.mymapperimpl habe, was com.example.demo.mymapper?user> ./mvnw clean install // error on testing
user> ./mvnw clean install -DskipTests=true // builds OK
user> ./mvnw spring-boot:run // error on run
< /code>
Ich verwende JDK21 in einem VSCODE Java DevContainer, der einen Unterschied macht. Darüber hinaus habe ich in meiner tatsächlichen Anwendung eine Trace -Protokollierung für org.springframework.beans hinzugefügt und konnte bestätigen, dass es im ApplicationContext eine MyMapperImpl -Bean gab, aber kein Typ vom Typ MyMapper konnte gefunden werden.
Danke.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post