相关疑难解决方法(0)

如何在XML配置文件中使用Spring Boot自动配置的bean?

我想利用XML配置文件中的一些Spring Boot自动配置的bean,但是当我尝试这样做时,我仍然遇到异常和错误.

例如,如果我的类路径上有数据相关的库,Spring Boot将自动配置一个DataSource对象,我可以将其自动装入我自己的bean和类中,如下所示:

@Configuration
@ImportResource("classpath:xmlconfig.xml")
public class Config {

    // This works!!
    @Autowired
    private DataSource dataSource;

    @Bean
    public ClassThatRequiresADataSource() {
        ClassThatRequiresADataSource foo = new ClassThatRequiresADataSource();
        foo.setDataSource(dataSource);
        return foo;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试在XML配置文件中执行相同操作,我将得到一个例外.我已经通过添加@ImportResource("classpath:xmlconfig.xml")到我的主配置类来引导XML配置文件.这是我正在谈论的一个例子......内部xmlconfig.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- THIS DOES NOT WORK! -->
    <bean id="anotherClassThatRequiresADataSource" class="my.package.AnotherClassThatRequiresADataSource">
        <property name="dataSource" ref="dataSource"/>
    </bean>

</beans>
Run Code Online (Sandbox Code Playgroud)

尽管dataSource是一个有效的,自动配置的Bean名称,上面将在运行Spring Boot应用程序时给出异常.我也尝试过自动配置ConnectionFactory(在类路径上使用ActiveMQ)和类路径上EntityManagerFactory使用Hibernate和JPA,但这些都不起作用.

基本上,我要问的是:什么相当于将Spring Boot自动配置的bean自动装配到XML配置文件中?

这是我的主要Spring Boot入口点,只是所有文档中列出的标准类:

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

    public …
Run Code Online (Sandbox Code Playgroud)

spring spring-integration spring-boot

18
推荐指数
1
解决办法
5万
查看次数

标签 统计

spring ×1

spring-boot ×1

spring-integration ×1