[java] intellij가 자동 유선 저장소에 대한 유형의 Bean을 찾을 수 없다고 잘못 설명했습니다.

간단한 단위 테스트를 만들었지 만 IntelliJ가 빨간색으로 잘못 강조 표시합니다. 오류로 표시

콩이 없습니까?

여기에 이미지 설명을 입력하십시오

아래에서 볼 수 있듯이 테스트를 통과합니까? 자동 배선이되어야합니까?

여기에 이미지 설명을 입력하십시오



답변

주석을 사용하여 Spring Boot 응용 프로그램을 만들 때 이와 동일한 문제가 발생했습니다 @SpringBootApplication. 이 주석은 나타내고 @Configuration, @EnableAutoConfiguration그리고 @ComponentScan받는 따른 스프링 참조 .

예상대로 새로운 주석이 제대로 작동하고 응용 프로그램이 원활하게 실행되었지만 Intellij 는 충족되지 않은 @Autowire종속성 에 대해 계속 불평했습니다 . 마자 내가 사용으로 다시 변경으로 @Configuration, @EnableAutoConfiguration그리고 @ComponentScan개별적으로, 오류가 정지했다. Intellij 14.0.3 (및 이전 버전도 가능)이 아직 @SpringBootApplication주석 을 인식하도록 구성되지 않은 것 같습니다 .

지금까지 오류로 인해 많은 방해가된다면 세 가지 주석으로 되돌아갑니다. 그렇지 않으면 테스트가 통과되므로 Intellij를 무시 하십시오.

항상 기억해…

사람은 항상 기계보다 큽니다.


답변

@Repository저장소 클래스에 Spring 주석 을 추가하십시오 .

이 주석없이 작동해야한다는 것을 알고 있습니다. 그러나 이것을 추가하면 IntelliJ는 오류를 표시하지 않습니다.

@Repository
public interface YourRepository ...
...

확장 Repository클래스 와 함께 스프링 데이터를 사용하면 충돌이 발생합니다. 그런 다음 명시 적 페이지를 표시해야합니다.

import org.springframework.data.repository.Repository;
...

@org.springframework.stereotype.Repository
public interface YourRepository extends Repository<YourClass, Long> {
    ...
}

다음으로 오류없이 저장소를 자동으로 연결할 수 있습니다.

@Autowired
YourRepository yourRepository;

아마 좋은 해결책은 아닙니다 (리포지토리 엄을 두 번 등록하려고한다고 생각합니다). 그러나 나를 위해 일하고 오류를 표시하지 않습니다.

새 버전의 IntelliJ에서 수정 될 수 있습니다. https://youtrack.jetbrains.com/issue/IDEA-137023


답변

IntelliJ IDEA Ultimate (2016.3.4 빌드 163)의 내 버전이이를 지원하는 것 같습니다. 트릭은 스프링 데이터 플러그인을 활성화해야한다는 것입니다.

여기에 이미지 설명을 입력하십시오


답변

@ComponentScan이 구성 요소를 스캔해야하는 위치를 표시해야하는 경우가 있습니다. 패키지를이 주석의 매개 변수로 전달하면됩니다. 예 :

@ComponentScan(basePackages={"path.to.my.components","path.to.my.othercomponents"})

그러나 이미 언급했듯이 @SpringBootApplication 주석은 @ComponentScan을 대체하므로 이러한 경우 동일한 작업을 수행해야합니다.

@SpringBootApplication(scanBasePackages={"path.to.my.components","path.to.my.othercomponents"})

적어도 제 경우에는 Intellij가 불평을 중단했습니다.


답변

나는 항상이 문제를 다음과 같이 해결합니다.
설정> 검사> 스프링 코어> 오류보다 심각도 경고 옵션으로 이동하는 것보다

여기에 이미지 설명을 입력하십시오


답변

나는 spring-boot 2.0을 사용하고 있으며 intellij 2018.1.1 Ultimate Edition과 같은 문제에 직면했습니다.

@EnableAutoConfiguration을 기본 응용 프로그램 클래스에 배치하여 해결했습니다.

@SpringBootApplication
@EnableAutoConfiguration
class App{
/**/
}


답변

서비스 클래스에서 @Service 주석을 놓쳤는 지 확인하십시오.