私は別の外部JARで動作するSpringBootアプリケーションを持っています。 JARから@Autowiredクラスにしようとすると、SpringAppがロードされません。私は "org.springframework.beans.factory.NoSuchBeanDefinitionException"を取得しました。私はこれがSpringBootのプロジェクトクラスの場所を検索しないことと関係があることを知っていますが、どこを正しく表示するかを正しく理解する方法を理解することはできません。 @ComponentScanを追加しました。これは他の内部クラスで動作しましたが、このExternal JARでは動作しませんでした。SpringBoot外部JARからのオートワイヤード例外
これは私が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に指示する方法を見つけることができません。
エラーは、「フィールドをautowireできませんでした:プライベートar.com.tr.arz.expurgo.services.ClasificacionService」である
私も@ComponentScan初期クラスの外部JARのクラスを追加しようとしましたが、それも動作しませんでした。
提案がありますか?
InitクラスのComponentScanにパッケージを追加します。 ArzServiceImplはコンポーネントなので、設定を含んではいけません。 – dunni
JARはクラスパス上で利用可能ですか?また、 '@ ComponentScan'は' Init 'クラスになければなりません – developer