Ich habe eine SpringBoot-Anwendung, die mit einem anderen externen JAR funktioniert. Wenn ich @Autowired-Klassen aus der JAR-Klasse versuche, kann die SpringApp nicht geladen werden. Ich habe "org.springframework.beans.factory.NoSuchBeanDefinitionException". Ich weiß, das hat damit zu tun, dass SpringBoot nicht sucht, wo die Projektklassen sind, aber ich kann nicht herausfinden, wie ich richtig sagen soll, wo ich suchen soll. Ich habe @ComponentScan hinzugefügt, es funktionierte mit anderen internen Klassen, aber nicht mit dieser externen JAR.SpringBoot Autowired Ausnahme von externen JAR
Dies ist die Klasse, wo ich die JAR-Methoden verwenden:
package ar.com.tr.latam.care.ws.service.impl;
@Configuration
@ComponentScan({
"ar.com.tr.arz.expurgo", "ar.com.tr.arz.expurgo.logger", "ar.com.tr.arz.expurgo.logger.dao", "ar.com.tr.arz.expurgo.logger.impl","ar.com.tr.arz.expurgo.logger.model"})
@Import({ AppConfig.class, AplicacionCriteriosExpurgoServiceImpl.class, ClasificacionServiceImpl.class, ExcelReaderServiceImpl.class, ConversionServiceImpl.class})
@Service
public class ArzServiceImpl implements ArzService {
@Autowired
private ExcelReaderService excelReaderService;
@Autowired
private ConversionService conversionService;
@Autowired
private AppConfig appConfig;
...
}
Und meine Init.java Klasse:
package ar.com.tr.latam.care;
@Configuration
@ComponentScan({ "ar.com.tr.latam.care.controller",
"ar.com.tr.latam.care.filtro", "ar.com.tr.latam.care",
"ar.com.tr.latam.care.model.log", "ar.com.tr.latam.care.logger.impl", })
@EnableJpaRepositories
@SpringBootApplication
public class Init extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Init.class);
}
/**
* Main method.
*
* @param args String[].
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
SpringApplication.run(Init.class, args);
}
}
Die JAR-Struktur beginnt mit „ar.com.tr.arz. expurgo ", aber ich kann nicht herausfinden, wie ich Springboot richtig befehle, dort nach diesen Dateien zu suchen.
Der Fehler ist "Could not Feld autowire: privat ar.com.tr.arz.expurgo.services.ClasificacionService"
ich auch die externen JAR-Klassen in der @ComponentScan Init-Klasse hinzugefügt habe versucht, aber Es hat auch nicht funktioniert.
Irgendwelche Vorschläge?
Fügen Sie die Pakete dem ComponentScan in Ihrer Init-Klasse hinzu. ArzServiceImpl ist eine Komponente und sollte daher keine Konfiguration enthalten. – dunni
Ist das JAR im Klassenpfad verfügbar? Außerdem sollte '@ ComponentScan' in der' Init' Klasse sein – developer