programing

intellij가 자동 전원 저장소에 대한 빈 유형을 찾을 수 없다고 잘못 말했습니다.

yoursource 2022. 8. 9. 21:57
반응형

intellij가 자동 전원 저장소에 대한 빈 유형을 찾을 수 없다고 잘못 말했습니다.

간단한 유닛 테스트를 작성했지만 IntelliJ가 빨간색으로 잘못 강조 표시하고 있습니다.오류라고 마크하고 있습니다.

콩이 없어요?

여기에 이미지 설명 입력

아래 보시는 바와 같이 시험에 합격하셨습니까?그럼 자동 전원 공급 장치인가?

여기에 이미지 설명 입력

Spring Boot 어플리케이션을 작성할 때도 같은 문제가 있었습니다.@SpringBootApplication 하다, 하다, 하다, 하다를 나타냅니다.@Configuration,@EnableAutoConfiguration ★★★★★★★★★★★★★★★★★」@ComponentScan스프링 레퍼런스에 따르면

예상대로 새로운 주석은 제대로 작동했고 내 애플리케이션은 원활하게 실행되었지만 인텔리지는 채워지지 않은 것에 대해 계속 불평했다.@Autowire의존 관계다시 사용으로 바꾸자마자@Configuration,@EnableAutoConfiguration ★★★★★★★★★★★★★★★★★」@ComponentScan에러도 없어졌습니다.Intelij 14.0.3(및 대부분의 경우 이전 버전도)은 아직 다음 버전을 인식하도록 설정되어 있지 않은 것 같습니다.@SpringBootApplication석입니니다다

일단 오류가 너무 심하면 세 개의 주석으로 돌아갑니다.그렇지 않으면 인텔리지는 무시해...테스트에 합격했기 때문에 의존관계 해결이 올바르게 구성되어 있습니다.

항상 기억하세요...

인간은 항상 기계보다 위대하다.

을 추가합니다.@Repository저장소 클래스 위에 있습니다.

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

@Repository
public interface YourRepository ...
...

를 확장자와 Repository conflict class conflict pagages가 .그럼 explicity pagkages을 표시해야 한다.그런 다음 설명성 페이지를 지정해야 합니다.

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

인텔리J 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"})

적어도 제 경우엔, 인텔리는 불평을 멈췄습니다.

나는 항상 이 문제를 팔로우 하면서 해결한다.설정 >검사>스프링 코어> 에러에서 중대도 경고 옵션으로의 이행 이외의 코드

여기에 이미지 설명 입력

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

@Enable을 배치하여 해결했습니다.메인 응용 프로그램클래스의 자동 설정

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

서비스 클래스에서 @Service 주석을 놓쳤는지 확인해 주세요.저도 마찬가지입니다.

놓는 것을 죽이는 형벌@Component ★★★★★★★★★★★★★★★★★」@configuration너의 콩 구성 파일을 부리는 듯,:콩 config파일이 정상적으로것 같습니다 있는 동작하고 같은 것이 급격하다.

@Configuration
public class MyApplicationContext {
    @Bean
    public DirectoryScanner scanner() {
        return new WatchServiceDirectoryScanner("/tmp/myDir");
    }
}

@Component
public class MyApplicationContext {
    @Bean
    public DirectoryScanner scanner() {
        return new WatchServiceDirectoryScanner("/tmp/myDir");
    }
}

애플리케이션 콘텍스트를 설정하면 모든 것이 정상입니다.

여기에 이미지 설명 입력

당신이사용하신적이 있는지 확인하셨습니까 사용했다 확인하였습니까?@Service당신의 서비스 구현 위에 Annotation?서비스 구현 위에 주석을 달수 있습니까?그것은 나에게 효과가 있었다.그것은나에게 효과가 있었다.

import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserServices {}

사용 사용하다@EnableAutoConfiguration로의 주석과 주석.@Component클래스 수준에.클래스 레벨로.그것은 이 문제를 해결할 것이다.이 문제는 해결됩니다.

예를 들어 다음과 같습니다.

@Component
@EnableAutoConfiguration  
public class ItemDataInitializer  {

    @Autowired
    private ItemReactiveRepository itemReactiveRepository;

    @Autowired
    private MongoOperations mongoOperations;
}

변경을 원하지 않는 경우는, IDE 를 만족시키기 위해서만 코드를 작성합니다.스프링 패싯에 모든 컴포넌트를 추가하여 해결했습니다.

  1. "Service, Processors and Routers" 또는 원하는 이름을 가진 그룹을 만듭니다.
  2. 이전에 작성한 그룹을 상위 그룹으로 사용하여 "Spring Application Context"를 제거하고 다시 만듭니다.

여기에 이미지 설명 입력

나에게는 그 해결책저에게 해결책은 '그냥'을 입양시키는 것이었다@EnableAutoConfiguration[ Application ]의 @SpringBootApplication중복되기 때문에 밑줄을 긋게 됩니다. 같은 봄★★★★★★★★★★★★★★★★★。

에 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★alt + enter 위에 첫 번째 의 하위 .Disable Inspection 고르다

하나 더 .ComponentScan그래야 앱이 배선해야 할 사항을 알 수 있습니다.이것은 이 질문의 경우와는 관련이 없습니다., ''가 경우 '''입니다.@autowiring전혀 실행되고 있지 않은 경우, 이것이 솔루션이라고 생각됩니다.

@Configuration
@ComponentScan(basePackages = {
    "some_package",
})
public class someService {

IntelliJ v.14에서 이 오류가 표시될 때 이 주석을 사용하여 숨깁니다.

@SuppressWarnings("SpringJavaAutowiringInspection")

스프링 부츠애플리케이션은 Feign(주석이 달린 인터페이스로부터의 요구를 합성하는HTTP http http 을 http http http http http http 。 「」를 가지는 것.SomeClient'어느 정도'라는 주석이 붙어 .@FeignClientFeign은 이 인터페이스를 구현하는 런타임프록시 클래스를 생성합니다. 중 가 bean 했을 때SomeClientSomeClient는 Idea를 에 찾을 수 있습니다.@FeignClient을 사용하다

:: " " " " "SomeClient@Component(()를 사용하지 @FeignClient은요.SomeClient메타 합니다.@OurProjectFeignClient에는 「」라고 하는 이 붙어 있습니다.@FeignClient "" 추가@Component주석도 기능합니다.)

심플한 것은 2단계입니다.

  1. 휴지 상태 코어 의존 관계 추가
  2. @Autowired로로 합니다.@Resource.
==>> change @Autowired to  @Resource

필요한 것은 추가입니다.

@ComponentScan("package/include/your/annotation/component")AppConfiguration.java

엔 너의 내에 since since since since since since since since since since since since래AppConfiguraion.java의 패키지가 주석 구성 요소(@Service, @Component...)보다 깊습니다.)의 패키지,

를 들면, 「」와 같이"package/include/your/annotation/component/deeper/config".

저도 지원서에 비슷한 문제가 있었어요.주석을 추가했을 때 잘못된 하이라이팅이 사라졌습니다.

@ContextConfiguration(classes = {...})

내 경우 @Autowired 디렉토리가 동일하지 않습니다.

동일한 구조 수준에서 설정한 후 오류가 사라졌습니다.

누군가에게 도움이 되길 바래!

IntelliJ IDEA Ultimate

IntelliJ Spring 어플리케이션 컨텍스트에 메인 클래스를 추가합니다(예: 어플리케이션).자바

File->Project Structure..

왼쪽:프로젝트 설정 -> 모듈

:: " " " " " " " "Spring+ Application.java

아래에 두 개의 주석을 POJO에 추가합니다.

@ComponentScan
@Configuration
public class YourClass {
    //TODO
}

IntelliJ(IDE)와 개발 환경 간의 대부분의 동기화 오류입니다.

특히 자동 테스트나 친환경 테스트의 빌드를 사용하고 있는 경우는 더욱 그렇습니다.

캐시 비활성화재시작으로 문제가 해결되었습니다.

스프링 부트 어플리케이션에서 이 문제에 대한 해결 방법은 스프링 어플리케이션 컨텍스트를 열고 누락된 자동 전원 콩 클래스를 수동으로 추가하는 것이었습니다.

(Project Structure 메뉴 또는 스프링 도구 창을 통해 액세스...스프링 애플리케이션 컨텍스트 편집)

따라서 Spring Application Context에는 Example Application 스프링 구성만 포함되어 있지 않고 누락된 Bean도 포함되어 있습니다.

Spring Application Context:

  • 예: 어플리케이션자바
  • MissingBeanClass.java

et voila:오류 메시지가 사라졌습니다!

이것은 최신 IntelliJ의 버그인 것 같고, 캐싱의 문제일 가능성이 있습니다.

위에서 언급한 mk321로 @Repository 주석을 추가하고 저장한 후 주석을 제거한 후 다시 저장하면 문제가 해결됩니다.

때때로 - 제 경우 - 그 이유는 잘못된 수입 때문입니다.실수로 수입했다

import org.jvnet.hk2.annotations.Service

대신

import org.springframework.stereotype.Service

이데아가 제안한 수입품 중 첫 번째 선택을 맹목적으로 받아들임으로써요.처음 일어났을 때 몇 분 정도 걸렸어요:-)

이 작업을 수행하려면 다음 코드만 있으면 됩니다.

@ComponentScan
public class PriceWatchTest{

    @Autowired
    private PriceWatchJpaRepository priceWatchJpaRepository;
...
...
}

@Enable을 사용해야만 했습니다.이 문제에 대처하기 위한 AutoConfiguration이지만 이 오류는 기능에 영향을 주지 않았습니다.

@Enable을 입력하면 해결할 수 있습니다.스프링 부트 어플리케이션의 메인클래스에서의 자동 설정.

언급URL : https://stackoverflow.com/questions/26889970/intellij-incorrectly-saying-no-beans-of-type-found-for-autowired-repository

반응형