나는 다른 외부 JAR과 동작하는 SpringBoot Application을 가지고있다. JAR에서 @Autowired 클래스를 시도하면 SpringApp이로드되지 않습니다. "org.springframework.beans.factory.NoSuchBeanDefinitionException"이 있습니다. 이것이 SpringBoot가 프로젝트 클래스가 어디에 있는지 검색하지 않는 것과 관련이 있다는 것을 알고 있지만, 어떻게 보일지 정확하게 알려주는 방법을 알 수는 없습니다. @ComponentScan을 추가했습니다.이 클래스는 다른 내부 클래스와 함께 작동하지만이 외부 JAR에서는 작동하지 않습니다. SpringBoot 외부 JAR로부터의 Autowired 예외
이
내가 JAR 방법을 사용하는 클래스입니다 :package ar.com.tr.latam.care.ws.service.impl;
@Configuration
@ComponentScan({
"ar.com.tr.arz.expurgo", "ar.com.tr.arz.expurgo.logger", "ar.com.tr.arz.expurgo.logger.dao", "ar.com.tr.arz.expurgo.logger.impl","ar.com.tr.arz.expurgo.logger.model"})
@Import({ AppConfig.class, AplicacionCriteriosExpurgoServiceImpl.class, ClasificacionServiceImpl.class, ExcelReaderServiceImpl.class, ConversionServiceImpl.class})
@Service
public class ArzServiceImpl implements ArzService {
@Autowired
private ExcelReaderService excelReaderService;
@Autowired
private ConversionService conversionService;
@Autowired
private AppConfig appConfig;
...
}
그리고 내 Init.java 클래스 :
package ar.com.tr.latam.care;
@Configuration
@ComponentScan({ "ar.com.tr.latam.care.controller",
"ar.com.tr.latam.care.filtro", "ar.com.tr.latam.care",
"ar.com.tr.latam.care.model.log", "ar.com.tr.latam.care.logger.impl", })
@EnableJpaRepositories
@SpringBootApplication
public class Init extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Init.class);
}
/**
* Main method.
*
* @param args String[].
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
SpringApplication.run(Init.class, args);
}
}
의 JAR 구조 "ar.com.tr.arz로 시작합니다. expurgo ",하지만 난 그 파일을 확인하기 위해 Springboot에게 적절하게 알려주는 방법을 찾을 수 없습니다. 나는 또한 @ComponentScan 초기화 클래스에서 외부 JAR 클래스를 추가하려고했습니다
:하지만,
오류는 "개인 ar.com.tr.arz.expurgo.services.ClasificacionService을 필드를 autowire하기 수 없습니다" 그것은 또한 작동하지 않았다.
제안 사항?
Init 클래스의 ComponentScan에 패키지를 추가하십시오. ArzServiceImpl은 구성 요소이므로 구성을 포함해서는 안됩니다. – dunni
클래스 경로에서 JAR을 사용할 수 있습니까? 또한'@ ComponentScan'은'Init'클래스에 있어야합니다. – developer