Ich arbeite derzeit mit Spring Boot, Erstellen eines CommandLineRunner. Alles funktionierte gut, bis ich versuchte @Autowired meine Klassen: Sie sind immer Null und haben den gleichen Fehler von Spring: "Fehler beim Erstellen Bean mit dem Namen 'initBatch': Injektion von autowired Abhängigkeiten gescheitert: Keine qualifizierende Bean vom Typ [Utils] gefunden für Abhängigkeit: mindestens 1 Bohne, die für diese Abhängigkeit als autowire Kandidat qualifiziert erwartet Abhängigkeit Anmerkungen ich kann immer noch nicht herausfinden, warum geschieht dieser Fehler Dies ist mein Code:...Spring Boot Service ist null
@SpringBootApplication
public class InitBatch implements CommandLineRunner {
@Autowired
private Utils Utils;
@Override
public void run(String... args) throws Exception {
System.out.println("Hello World");
}
public static void main(String[] args) throws Exception {
SpringApplication.run(InitBatch.class, args);
}
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("instances");
return messageSource;
}
Dies ist die Utils-Klasse das verursacht problem:
@Configurable
@Service
public class Utils {
private static final Logger LOG = LoggerFactory.getLogger(Utils.class);
//NUMEROUS METHODS...
}
Auch ich habe anot ihr Init, der die App als WS lädt. Alles läuft auf einem Server, die gleichen Klassen funktionieren großartig. Das ist die andere Init, das funktioniert:
@Configuration
@ComponentScan({ "ws.controller","ws.service",
"ws.dao", "ws.util", "ws.filtro",
"ws.repository", "ws.model.log", "ws.logger.impl"})
@EnableAutoConfiguration
public class Init extends SpringBootServletInitializer {
private static final int SECS = 10;
@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);
}
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("instances");
messageSource.setCacheSeconds(SECS);
return messageSource;
}
}
Ich verstehe einfach nicht, warum die gleichen Dateien verwenden, mit der gleichen Konfiguration arbeitet mit Init.java (als tomcat web app), aber alle die gleiche Dateien sind null mit dem CommandLineRunner.
Irgendwelche Vorschläge?
Danke!
Sie haben Recht, ich habe meinen vorherigen Test mit dieser Konfiguration vermasselt. Wenn ich den @ComponentScan funktioniert wie ein Charme. Vielen Dank! –
Cheers ..... @ NicolasGallegos –