2017-05-24 2 views
0

2 개의 콩이있는 구성 클래스를로드하지 않는 스프링 부트 앱에 문제가 있습니다. 이상하게도 같은 패키지에있는 다른 config 클래스가로드됩니다.스프링 부트 : 클래스가 패키지가로드되지 않습니다.

두 구성 클래스 모두에 @Configuration이 있습니다. 로드하지 않는 것도 @ComponentScan(basePackages = {"com.example.package.in.jar"})입니다.

기본 패키지 값은로드 된 jar 파일의 패키지를 참조합니다.

나는 Gradle 3.4.1, Spring Boot 1.5.3을 사용하고 있습니다. Spring 디버깅을 켜면 다른 config 클래스가 발견되어로드되는 것을 보여 주지만 다른 클래스는 건너 뜁니다. 예외가 발생하지 않으며 전혀 오류가 발생하지 않습니다.

코드가 실행되지 않지만 최소한 클래스를로드하거나 오류를 발생시키는 것은 한 가지 일이지만, 작성된 로그 파일에는 오류가 표시되지 않습니다.

+0

현재로드되지 않는 '@ ComponentScan'을 제거하면 문제가 해결됩니까? '@ ComponentScan'을 가지고 무엇을로드하려고합니까? (나는 추측하고있다) 제 3 자 lib에있는 콩? – Bwvolleyball

+0

'@ComponentScan (basePackages = { "classpath * : com.example.package.in.jar"})로 변경하려고하면'*'는 classpath에서 jars를 검색하는 것을 의미합니다. – StanislavL

+0

3 가지 제안 사항 중 아무 것도 변경되지 않았습니다. 내가 이해하지 못하는 점은 항아리의 클래스가 해결되었는지 여부에 상관없이 디버거가 클래스에서 중단되지 않는 이유는 무엇입니까? 이 클래스의 bean은 jar 파일의 클래스로 autowired됩니다. 여전히 코드에서 '중단'할 수 있어야한다고 생각합니다. – Les

답변

0

을 참조로 시작 심지어 보이지도 않는다. 제안을 시도한 후에, @ImportAutoConfiguration을 시도하는 또 다른 옵션을 찾았습니다. 주요 스프링 부트 앱 파일에서이 주석을 사용하고 내 config 패키지에 파일을 지정했습니다. 이것은 컴파일러가 문제가있는 파일을 해결할 수 없다고 말한 때입니다.

내용을 잘라내어 파일을 삭제하고 약간 다른 이름으로 파일을 다시 만들고 내용을 붙여 넣은 다음 주석의 파일 목록을 업데이트합니다. 그것은 효과가있다!

파일이 IntelliJ의 파일 트리에 표시되었지만 컴파일러에서 파일을 볼 수 없어서 구성되지 않았습니다. 주석 내에서 명시 적으로 찾아야 만 오류가 발생했습니다.

게시 된 제안에 감사드립니다.

관련 문제