我正在尝试将Spring 4.x.x迁移到Spring引导,并且它依赖于外部spring 2.5 jar中的类。我进行了所有自动装配更改,下面是我的应用程序类
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan(basePackages = { "com.xyz" })
public class MainApiApplication {
public static void main(String[] args) {
SpringApplication.run(MainApiApplication.class, args);
}
}
外部jar中的依赖类位于com.xyz.abc包下,因为我将主应用程序类放在com.xyz包下,并且还在同一包下添加了组件扫描
这是我的组件类,其依赖项自动关联
@Component
public class ComponentClassA {
@Autowired
private ComponentClassB currencyService;
}
@Component
public class ComponentClassB {
@Autowired
private DependentClass depClass;
}
DependentClass是我在本地附加并构建的外部依赖项jar中存在的类
生成应用程序时,可以对所有文件进行编译,并且可以成功生成生成文件。但是,当我启动应用程序时,出现以下错误
Field DependentClass in com.xyz.ComponentClassB required a bean of type 'com.xyz.common.util.DependentClass' that could not be found.
我不了解找不到外部jar中的类的原因,因为我已为该软件包添加了组件扫描
DependentClass的定义如下
public class DependentClass extends ResourceClass<Map<String, Double>> {
// Methods and logic
}
是因为DependentClass扩展了一个类吗?有人可以帮我找出错误的原因吗?
最佳答案
DependentClass
上没有@Component
批注。因此,您需要自己通过XML或Java配置创建DependentClass
的bean。
而且,您不必将主类与DependentClass
放在同一软件包下。