私はSpringBootとJPAで作業しています。完了できなかった@Autowired
のエラーが表示されます。SpringBoot CRUDリポジトリのオートワイヤ化に失敗する
これは私のメインクラスです:失敗し
package com;
@SpringBootApplication
@EnableJpaRepositories(basePackages="com.repository")
public class InitBatch implements CommandLineRunner {
@Autowired
private Batch batch;
@Autowired
private CareDao careDAO;
@Override
public void run(String... args) throws Exception {
careDAO.setMessageSource(messageSource());
batch.processFiles();
}
public static void main(String[] args) throws Exception {
SpringApplication.run(InitBatch.class, args).close();
System.out.println("Finish");
}
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("file:/config/instances");
messageSource.setCacheSeconds(100);
return messageSource;
}
}
この私のクラス:
package com.repository;
public interface RequestLogDao extends CrudRepository<RequestLog, Integer> {
}
これは、エラーメッセージは次のとおりです:
package com.logger.impl;
@Configuration
@ComponentScan({"com.repository"})
@Component
public class RequestLoggerImpl implements RequestLogger {
@Autowired
private RequestLogDao requestLogDao;
}
これはRequestLogDao
クラスです
名前 'requestLoggerImpl'を持つBeanの作成中にエラーが発生しました:自動依存依存の注入が失敗しました。
フィールドをautowireできませんでした:private com.repository.RequestLogDao com.logger.impl.RequestLoggerImpl.requestLogDao;ネストされた例外はorg.springframework.beans.factory.NoSuchBeanDefinitionExceptionです:[com.repository.RequestLogDao]タイプの適格なBeanが依存関係で見つかりませんでした:この依存関係のautowire候補となる少なくとも1つのbeanが必要です。依存関係の注釈:{@ org.springframework.beans.factory.annotation.Autowired(必須= true)}
なぜ私はそれがautowireできないのか分かりません。私はメインクラスに@EnableJpaRepositories
を追加しようとしましたが、これはうまくいきませんでした。助言がありますか?前もって感謝します!
開始するには、 'RequestLoggerImpl'に' @ Configuration'というアノテーションを付けるべきではありません。これは設定クラスではなくサービスBeanです。 – chrylis