SpringブートV1.3.5を使用して新しいプロジェクトを設定しましたが、リポジトリをサービスに自動配線しようとするとNoSuchBeanDefinitionExceptionが発生します。私は他のプロジェクトがうまく動作するのと同じ方法を設定しているので、これは奇妙です。Spring NoSuchBeanDefinitionExceptionサービスへのリポジトリ
My Applicationクラス。
package api;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
System.out.println("-------------------");
System.out.println("The API is running.");
System.out.println("-------------------");
}
}
私のサービス。
package api.services;
import api.entity.Project;
import api.repository.ProjectRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ProjectService {
@Autowired
private ProjectRepository projectRepository;
/**
* Saves a project entity into the database.
*
* @param project Project
* @return Project
*/
public Project save(Project project) {
return this.projectRepository.save(project);
}
}
マイリポジトリ。
package api.repository;
import api.entity.Project;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ProjectRepository extends CrudRepository<Project, Integer> {
Project findByName(String name);
}
今私のサービスは、私のコントローラにautowiredますが、春には、何らかの理由で、私のリポジトリを好きにいないようです。
誰かが間違っている/紛失しているのを見ることはできますか?
ありがとうございました。
例外メッセージは、次のとおりです。
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private api.repository.ProjectRepository api.services.ProjectService.projectRepository; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [api.repository.ProjectRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
ProjectRepositoryの具体的な実装はありますか?インターフェイスだけをインスタンス化することはできません。 – Gandalf
もちろん、インターフェースをインスタンス化することはできませんが、私はそれをインスタンス化していません。私はそれをオートワイヤリングしています。私は別のプロジェクトで同じ設定をして、それはうまく動作します。 Spring Data JPAは、アプリケーションを実行すると即座に実装を作成します。 " –
私は類似のサンプルプロジェクトを作成しようとしましたが、ここでは(https://github.com/vamsilp/testProjects.git)、それは私のために働いていました。プロジェクトエンティティクラスを公開してください。 ProjectRepositoryが正しくない可能性があります。 –