我正在尝试将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放在同一软件包下。

07-25 20:36