5

我有一个 java 配置类,它使用 @ImportResources 注释导入 xml 文件。在 java 配置中,我想引用在 xml 配置中定义的 bean,例如:

@Configuration
@ImportResource({
        "classpath:WEB-INF/somebeans.xml"
    }
)
public class MyConfig {
    @Bean
    public Bar bar() {
        Bar bar = new Bar();
        bar.setFoo(foo); // foo is defined in somebeans.xml
        return bar;
    }
}

我想将在 somebeans.xml 中定义的 bean foo 设置为将在 java config 类中创建的 bar bean。我如何获得 foo 豆?

4

1 回答 1

13

在您的配置类中添加一个字段并使用注释@Autowired或添加@Autowired到方法并传入该类型的参数。

public class MyConfig {

    @Autowired
    private Foo foo;

    @Bean
    public Bar bar() {
      Bar bar = new Bar();
      bar.setFoo(foo); // foo is defined in somebeans.xml
      return bar;
    }
}

或者

public class MyConfig {
    @Bean
    @Autowired
    public Bar bar(Foo foo) {
        Bar bar = new Bar();
        bar.setFoo(foo); // foo is defined in somebeans.xml
        return bar;
    }
}

这在参考指南中都有解释。

于 2013-09-09T11:11:37.227 回答