我最近將一個項目從Spring 4.3.1升級到了4.3.4,以前用什麼工作都很好,現在只是不適合我。Spring @Inject不工作
我使用JPA,其中包含了一系列的倉庫類:
/**
* Spring Data JPA repository for the DrugQualityCategory entity.
*/
public interface DrugQualityCategoryRepository extends JpaRepository<DrugQualityCategory,Long> {
@Query(value = "Select a from DrugQualityCategory a where a.oldId = ?1")
DrugQualityCategory findOneByOldId(Integer oldId);
}
我們還使用ElasticSearch的搜索引擎,它創建這樣一個系列SearchRepositories的:
/**
* Spring Data ElasticSearch repository for the Publication entity.
*/
public interface DrugQualityCategorySearchRepository extends ElasticsearchRepository<Publication, Long> {
}
之一ES的問題在於它需要定期更新它的索引,所以爲此我們構建了一個測試,它將注入所有存儲庫並從JPA存儲庫重建它們,當我們注入回購時,看起來像這樣:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@Transactional
@ActiveProfiles("syncElasticsearch")
public class SyncMysqlElasticSearch {
private Logger logger = LoggerFactory.getLogger(getClass());
@Inject DrugQualityCategoryRepository drugQualityCategoryRepository;
@Inject TechniqueRepository techniqueRepository;
@Inject TradeDrugRepository tradeDrugRepository;
@Inject SurveyDataRepository surveyDataRepository;
@Inject RQAAQualityRepository rqaaQualityRepository;
然後我們填補了ES實例:
drugQualityCategorySearchRepository.save(drugQualityCategoryRepository.findAll());
formulationSearchRepository.save(formulationRepository.findAll());
innDrugSearchRepository.save(innDrugRepository.findAll());
locationSearchRepository.save(locationRepository.findAll());
manufacturerSearchRepository.save(manufacturerRepository.findAll());
現在,我的問題是,當我嘗試啓動測試,我不斷獲取:
org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name [class name] Unsatisfied dependency expressed
through field [field name] nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [class name] available: expected at least
1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.inject.Inject()}
我已檢查了幾個問題,如 this和this,瀏覽了Spring文檔,但找不到任何相關內容
我明明嘗試了所有在不同的地方@Autowired
,@Component
和@Repository
標籤,沒有陽性結果
您如何設置測試環境? – Jan
嗨,1月,我不知道我知道你在上下文中的含義,我有一個配置yml文件,它爲ES和JPA設置連接參數,除此之外,我只有代碼提取中的註釋在原來的問題 – Steven