java - 如何将基于java的bean配置转换为基于xml的配置

标签 java spring

我是 spring 的新手,想知道如何将基于 java 的配置转换为基于 xml 的 bean 配置。我知道现在更多地使用基于注释的配置。但我的要求是使用基于 xml 的配置。 下面添加了Bean配置。

@Bean
DataStoreWriter<String> dataStoreWriter(org.apache.hadoop.conf.Configuration hadoopConfiguration) {
    TextFileWriter writer = new TextFileWriter(hadoopConfiguration, new Path(basePath), null);
    return writer;

最佳答案

可以直接在xml配置中创建bean

<bean id="dataStoreWriter" class="TextFileWriter">
    <constructor-arg index="0" ref="hadoopConfigBean"/>
    <constructor-arg index="1">
        <bean class="Path">
            <constructor-arg index="0" value="/tmp"/>
        </bean>
    </constructor-arg>
</bean>

如果您需要重要的 bean 配置,那么您可以在 xml 配置中使用工厂方法调用

<bean id="dataStoreWriter" class="DataStoreFactory" factory-method="dataStoreWriter">
    <constructor-arg index="0" ref="hadoopConfigBean"/>
    <constructor-arg index="1" value="/tmp"/>
</bean>

工厂类应该是这样的

public class DataStoreFactory {

  public static DataStoreWriter<String> dataStoreWriter(Configuration hadoopConfiguration, String basePath) {
    // do something here
    TextFileWriter writer = new TextFileWriter(hadoopConfiguration, new Path(basePath), null);
    return writer;
  }
}

关于java - 如何将基于java的bean配置转换为基于xml的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36746020/

相关文章:

Java方法接受不同父类(super class)的ArrayList,必须使用Interface吗?

java - 如何将输出语句转换为字符串类型?

java - Junit-如何测试参数的无效使用

java - Spring MVC 中的输入验证

java - Spring Batch 中仅适用于基于字符串的文件的默认 FieldSetMapper

Spring Session table-name 属性不改变表名

Spring Security SAML 扩展 - 从 Idp 单一注销的回调

java - 抽象父类(super class)中的通用 @Inject 字段

java - 用 '@Async' 注释的方法必须是可覆盖的

java - 使用 Java 8 Streams、map、filter、reduce 查找具有名字和姓氏的 Actor 曾工作过的电影