私はSpring Bootを使用していないので、私の質問はこれとほとんど同じですが同じではない、です。 Can't Autowire @Repository annotated interface in Spring Boot 私はできません@EnableJpaRepositories
私の場合は、スプリングブートランナーはありません。私はSpringMVCコントローラをWebアプリケーションの中に持っています。春のデータ:@Repository JpaRepositoryのインターフェースをAutowireできません: "少なくとも1つのBeanがautowire候補になります"
私は通常の旧式のSpringMVCアプリケーションで、単独でSpringデータを使用しています。
私は春データのDAOインタフェース@Repositoryに注意し、
Caused by: No qualifying bean of type 'com.myapp.dao.QuestionsDAO' available:
expected at least 1 bean which qualifies as autowire candidate.
エラーを取得しています:
@Repository
public interface QuestionsDAO extends JpaRepository<Question, Long> {
public String findById(Long id);
}
Aサービスは、このDAOを使用する必要があり、autowired:
コンポーネントを
public class SchedulingService {
@Autowired
QuestionsDAO questionsDAO;
public String findLabelById(Long id) {
return questionsDAO.findById(id);
}
}
コンポーネントスキャンが有効になっており、他のすべてに対して機能します。
<context:component-scan base-package="com.myapp" />
春のデータはSpringブートのみで使用できますか?
しかし、私はいくつかのSpringアノテーションが必要です。そうしないと、Autowireは機能しません。リポジトリインタフェースに@Componentを提案していますか? –
いいえ、 '@ EnableJpaRepositories'または' 'が処理します。設定されているパッケージをスキャンし、Spring Dataインターフェイスの1つを拡張するすべてのインターフェイスを確認します。したがって、インターフェース自体に注釈は必要ありません。 –
dunni