Java 在SpringBoot组件中使用依赖XML bean

Java 在SpringBoot组件中使用依赖XML bean,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个SpringBoot应用程序,它使用@Component注释来创建bean,而不是旧的基于XML的applicationContext文件 我需要使用一个使用基于XML的bean的库。我需要这些bean在我的应用程序中初始化并可用,否则我将重写相当多的代码 我尝试使用查找它们,但正如预期的那样,由于没有使用注释对类进行注释,因此查找不起作用。 如前所述,我试过使用,但运气不佳 所以问题是,当我的应用程序不使用XMLapplicationContext文件时,如何在jar依赖项中实例化be

我有一个
SpringBoot
应用程序,它使用
@Component
注释来创建bean,而不是旧的基于XML的
applicationContext
文件

我需要使用一个使用基于XML的bean的库。我需要这些bean在我的应用程序中初始化并可用,否则我将重写相当多的代码

我尝试使用查找它们,但正如预期的那样,由于没有使用注释对类进行注释,因此查找不起作用。 如前所述,我试过使用,但运气不佳

所以问题是,当我的应用程序不使用XML
applicationContext
文件时,如何在jar依赖项中实例化bean(这些依赖项是以XML样式定义的?

注意:

我需要导入的库非常旧,让它使用组件注释的可能性几乎为0。无论我改变什么,都必须在我的项目中

我知道开始使用
applicationContexts
可能会奏效,但我真的不想使用基于XML的bean


下面是SpringBootApplication类,以防它可能有用:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyApp extends SpringBootServletInitializer {
    public static void main(final String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

您可以让Spring引导组件扫描直接在其包中查找这些JAR,如下所示:

@ComponentScan(basePackages = {"org.thirdparty.thirdpartyjar"})
是一个我认为与您的问题/答案类似的问题/答案。

我认为您应该使用以Springbeans的形式加载JAR文件中的类。您可能需要正确地计算bean的依赖项,并将它们作为属性添加到主bean中。否则,可能会出现一些运行时异常

示例代码:-

ApplicationContext context 
      = new ClassPathXmlApplicationContext(
        "classpathxmlapplicationcontext-example.xml");

BeanClassName bean = context.getBean("beanName", BeanClassName.class);

正如我在问题中提到的,我已经尝试过这个方法,但它不起作用,因为库类没有用@Component注释,所以找不到它们。那么除了声明它们的应用程序上下文XML并从中获取bean之外,可能没有其他选择了。是的,我的错,一开始没有仔细阅读你的问题:)+1这确实有效,但正如你所提到的,没有找到属性,这样做需要大量的工作。因此,我暂时不会接受这个答案,以防万一有人提及一些更好的解决办法。可能会重复。我认为这是权威性的回答,不是吗?