복붙노트

[SPRING] IntelliJ IDEA는 Spring의 @Autowired 주석을 사용할 때 오류를 표시합니다.

SPRING

IntelliJ IDEA는 Spring의 @Autowired 주석을 사용할 때 오류를 표시합니다.

IntelliJ IDEA는 클래스에서 Spring의 @Autowired 주석을 사용할 때 오류를 표시하지만 클래스는 문제없이 작동합니다.

다음은이 오류 메시지입니다.

해결법

  1. ==============================

    1.나는 IntelliJ IDEA 13.1.4에서도 같은 문제가 있었다. 필자는 Spring 패싯 (File-> Project Structure)을 제거하고 "Detection"만 표시하도록 남겨 둠으로써이 문제를 해결했습니다.

    나는 IntelliJ IDEA 13.1.4에서도 같은 문제가 있었다. 필자는 Spring 패싯 (File-> Project Structure)을 제거하고 "Detection"만 표시하도록 남겨 둠으로써이 문제를 해결했습니다.

  2. ==============================

    2.여기에 같은 오류가 발생했습니다!

    여기에 같은 오류가 발생했습니다!

    Intellij는 클래스 구현이 @Service 또는 @Component인지 확인할 수없는 것 같습니다.

    그것을 오류에서 경고로 바꾸는 것만으로 해결하십시오 (Alt + Enter 누르기).

  3. ==============================

    3.모든 프로젝트 모듈에서 .iml 파일을 제거한 후 파일 -> 캐시 무효화 / 재시작으로 이동하십시오.

    모든 프로젝트 모듈에서 .iml 파일을 제거한 후 파일 -> 캐시 무효화 / 재시작으로 이동하십시오.

  4. ==============================

    4.Bean이 존재하고 검사의 문제점 만 알면 변수 선언 앞에 다음을 추가하십시오.

    Bean이 존재하고 검사의 문제점 만 알면 변수 선언 앞에 다음을 추가하십시오.

    @SuppressWarnings("SpringJavaAutowiringInspection")
    @Inject MyClass myVariable;
    

    경우에 따라 Bean이 조건부로 포함되고 조건 해석이 런타임에 발생하는 경우와 같이 Bean이 선언 된 경우 IntelliJ에서 해석 할 수없는 경우가 있습니다.

  5. ==============================

    5.파일 -> ProjectStructure -> 모듈 -> + (가운데 열) -> 봄 -> 확인

    파일 -> ProjectStructure -> 모듈 -> + (가운데 열) -> 봄 -> 확인

  6. ==============================

    6.억제 경고를 추가하여 문제를 해결했습니다.

    억제 경고를 추가하여 문제를 해결했습니다.

     @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
     @Autowired
     private ....
    
  7. ==============================

    7.나는 똑같은 문제가 있었다. 각 관련 모듈에 대한 Spring 패싯 (File-> Project Structure)을 추가하여이를 해결 한 다음 구성 파일을 추가합니다. 일부 프로젝트 (spring mvc)의 경우 config 파일은 자동으로 감지됩니다. 그러나 jar 프로젝트의 경우 수동으로 구성 파일을 추가해야했습니다.

    나는 똑같은 문제가 있었다. 각 관련 모듈에 대한 Spring 패싯 (File-> Project Structure)을 추가하여이를 해결 한 다음 구성 파일을 추가합니다. 일부 프로젝트 (spring mvc)의 경우 config 파일은 자동으로 감지됩니다. 그러나 jar 프로젝트의 경우 수동으로 구성 파일을 추가해야했습니다.

  8. ==============================

    8.Spring bean 정의가 올바른지 확인하십시오. 때로는 응용 프로그램이 제대로 작동하고 IDE에서 오류가 표시되며 Spring 패싯이 정의되어 있으면 프로젝트 'iml'파일을 확인하십시오.

    Spring bean 정의가 올바른지 확인하십시오. 때로는 응용 프로그램이 제대로 작동하고 IDE에서 오류가 표시되며 Spring 패싯이 정의되어 있으면 프로젝트 'iml'파일을 확인하십시오.

  9. ==============================

    9.IntelliJ Idea (IDE)가 모듈을 검사하는 데 필요한 모든 스프링 구성을 알고 있는지 확인하십시오.

    IntelliJ Idea (IDE)가 모듈을 검사하는 데 필요한 모든 스프링 구성을 알고 있는지 확인하십시오.

    이것을 아래에서 확인할 수 있습니다.

    때로는 스프링 구성이 종속성 (프로젝트 클래스 경로에있는 jar)에서 발생한다고 명시 적으로 IDE에 알려야합니다.

  10. ==============================

    10.파일 >> 프로젝트 구조 >> 패싯으로 이동 한 다음 모든 구성 파일을 스프링 패싯에 추가하여 문제를 해결했습니다. 그 다음에는 빈이있는 파일을 감지하기 시작하여 문제를 정렬 할 수있었습니다. 이 수표를주는 IntelliJ는 매우 가치가 있으며 IMHO를 사용해서는 안됩니다.

    파일 >> 프로젝트 구조 >> 패싯으로 이동 한 다음 모든 구성 파일을 스프링 패싯에 추가하여 문제를 해결했습니다. 그 다음에는 빈이있는 파일을 감지하기 시작하여 문제를 정렬 할 수있었습니다. 이 수표를주는 IntelliJ는 매우 가치가 있으며 IMHO를 사용해서는 안됩니다.

  11. ==============================

    11.나는 똑같은 문제가있다. 내 autowired 참조를 포함하는 콩 (그것은 EJB를했다) 봄 구성 요소 아니었지만 SpringBeanAutowiringInterceptor 인터셉터 autowiring의 사용을 허용했기 때문에 내 것이었다. Intellij는 Autowiring 검사에서이 가능성을 생각하지 않습니다.

    나는 똑같은 문제가있다. 내 autowired 참조를 포함하는 콩 (그것은 EJB를했다) 봄 구성 요소 아니었지만 SpringBeanAutowiringInterceptor 인터셉터 autowiring의 사용을 허용했기 때문에 내 것이었다. Intellij는 Autowiring 검사에서이 가능성을 생각하지 않습니다.

  12. ==============================

    12.나는이 문제도 가지고 있었다. Alt + Enter를 누른 다음 영향을받은 라인에서 봄 검사를 다시 실행하거나 사용 중지하도록 요청하여이를 수정했습니다. 이것은 13.4 업데이트 후에 만 ​​문제가 된 것으로 보입니다.

    나는이 문제도 가지고 있었다. Alt + Enter를 누른 다음 영향을받은 라인에서 봄 검사를 다시 실행하거나 사용 중지하도록 요청하여이를 수정했습니다. 이것은 13.4 업데이트 후에 만 ​​문제가 된 것으로 보입니다.

  13. ==============================

    13.가시성 문제처럼 보입니다. 상위 컨트롤러가 연결하려는 구성 요소를 보지 못합니다.

    가시성 문제처럼 보입니다. 상위 컨트롤러가 연결하려는 구성 요소를 보지 못합니다.

    추가하려고 시도하십시오.

    @ComponentScan("path to respective Component") 
    

    상위 컨트롤러에 연결하십시오.

  14. ==============================

    14.내 CrudRepository 인터페이스에 @Repository를 추가하지 않았기 때문에 내가 본 튜토리얼은 STS에 추가하지 않았고 불평하지 않았다.

    내 CrudRepository 인터페이스에 @Repository를 추가하지 않았기 때문에 내가 본 튜토리얼은 STS에 추가하지 않았고 불평하지 않았다.

  15. ==============================

    15.@Component, @Repository 또는 유사한 것을 클래스에 추가했는지 확인해야합니다.

    @Component, @Repository 또는 유사한 것을 클래스에 추가했는지 확인해야합니다.

  16. ==============================

    16.웹 패싯 추가로 해결했습니다.

    웹 패싯 추가로 해결했습니다.

  17. ==============================

    17.내 경우에는 web.xml에 쓰지 못했습니다.

    내 경우에는 web.xml에 쓰지 못했습니다.

        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    
        <listener>
            <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
        </listener>
    
       <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath*:applicationContext.xml</param-value>
       </context-param>
    

    및 응용 프로그램 컨텍스트 파일 :

    <context:component-scan base-package=[your package name] />
    

    이 태그를 추가하고 maven을 실행하여 프로젝트를 다시 빌드하면 intellij의 자동으로 발생하는 오류가 사라지고 빈 아이콘이 왼쪽 여백에 나타납니다.

  18. ==============================

    18.

    eg1:
    director:Settings - Editor - Inspections - Spring - Spring Core - Code - Autowiring for Bean Class 
    operate:checkout 勾去掉
    eg2:
    1.impl class add @service
    like this:
    @Service
    public class CityServiceImpl implements CityService{
    @Autowired
    private CityDao cityDao;
    
    like this
    2.dao file class add @Repository
    @Repository
    public interface CityDao {
    
  19. ==============================

    19.나는이 방법으로이 문제를 해결했다. IntelliJ에서 모든 패키지는 main / java의 서브 패키지 인 서브 패키지에 있어야합니다. 예를 들어 src / main / java / com.misisol.watchStore / 아래에 모든 패키지를 넣었고 spring은 내 bean을 찾을 수있다.

    나는이 방법으로이 문제를 해결했다. IntelliJ에서 모든 패키지는 main / java의 서브 패키지 인 서브 패키지에 있어야합니다. 예를 들어 src / main / java / com.misisol.watchStore / 아래에 모든 패키지를 넣었고 spring은 내 bean을 찾을 수있다.

  20. ==============================

    20.@Qualifier로 Bean을 주입하면 문제가 해결되었습니다.

    @Qualifier로 Bean을 주입하면 문제가 해결되었습니다.

  21. ==============================

    21.나는 비슷한 문제가 있었다. "Process 명시 적으로 주석 처리 된 콩"옵션을 선택 해제하여 해결했습니다 (아래 스크린 샷 참조). 이 옵션은 linux에서 기본적으로 사용 가능합니다. 이제 @Service 및 @Configurations 주석을 볼 수 있습니다. 스크린 샷

    나는 비슷한 문제가 있었다. "Process 명시 적으로 주석 처리 된 콩"옵션을 선택 해제하여 해결했습니다 (아래 스크린 샷 참조). 이 옵션은 linux에서 기본적으로 사용 가능합니다. 이제 @Service 및 @Configurations 주석을 볼 수 있습니다. 스크린 샷

  22. from https://stackoverflow.com/questions/21323309/intellij-idea-shows-errors-when-using-springs-autowired-annotation by cc-by-sa and MIT license