私は単純なスプリングブートアプリケーションを使用しており、Hibernateを使用してデータベースに接続したいとします。 RepositoryクラスをControllerクラスに挿入することができません。助けてください。しかし、コードの原因となる問題を取り除くと、アプリケーションがすべてのコンポーネントをスキャンして正常に動作するようになります。 Eclipseでコードを作成しました。依存関係のあるタイプの修飾Beanがありません:Spring Boot
マイスタータークラス
package spring.starter;
@SpringBootApplication
@ComponentScan(basePackages = "spring")
public class Starter {
public static void main(String args[]) {
ApplicationContext ctx = SpringApplication.run(Starter.class, args);
}
}
私のコントローラクラス
package spring.controller;
@RestController
@RequestMapping("/app")
public class AdminController {
/*@Autowired
private AdminService service;*/
@Autowired
@Qualifier("adminRepository")
private AdminRepository adminRepository;
@GetMapping("/admin")
public List<Admin> getAllAdmin() {
return adminRepository.findAll();
}
}
マイリポジトリクラス:このクラスのために私は、注釈が、それもくぼみ仕事の両方を削除しようとしています。
package spring.repository;
@Repository
@Qualifier("adminRepository")
public interface AdminRepository extends JpaRepository<Admin, Integer>{
}
例外トレース
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [spring.repository.AdminRepository] found for dependency [spring.repository.AdminRepository]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=adminRepository)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1406) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1057) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1019) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:566) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
... 19 common frames omitted
Annotationが記述されているため、SpringBootApplication(scanBasePackages = "spring")に変更することを意味しましたか?私はあなたの両方の方法を試みたが、それでも私は同じ例外を与えた。 –