gpt4 book ai didi

java - Spring - 引用 Java bean 在 XML 中创建 bean,反之亦然

转载 作者:搜寻专家 更新时间:2023-11-01 01:48:45 25 4
gpt4 key购买 nike

如果我在 Java 中使用@Bean 创建了一个 bean,那么当在那里创建一个 bean 时,我如何在 XML 中引用这个 bean?如果我有一个用 XML 创建的 bean,那么当在那里创建一个 bean 时,我如何在 Java 中引用这个 bean?

最佳答案

在 Java 类中创建 bean 等同于在 XML 文件中创建 bean。因此,如果您想在 XML 文件中引用在 Java 类中创建的 bean,只需使用 ref= beanName 属性来引用 bean,反之亦然。

在官方文档中说:

4.2.1。声明一个 bean

要声明一个 bean,只需使用 @Bean 注释来注释一个方法。当 JavaConfig 遇到这样的方法时,它将执行该方法并将返回值注册为 BeanFactory 中的 bean。默认情况下,bean 名称将是方法名称。

@Configuration
public class AppConfig {
@Bean
public TransferService transferService() {
return new TransferServiceImpl();
}
}

上面的完全等同于下面的appConfig.xml:

<beans>
<bean name="transferService" class="com.company.TransferServiceImpl"/>
</beans>

两者都会导致一个名为 transferService 的 bean 在 BeanFactory/ApplicationContext 中可用,绑定(bind)到 TransferServiceImpl 类型的对象实例:

而且你还需要确保你添加了

<bean class="org.springframework.config.java.process.ConfigurationPostProcessor"/> 

在您的 xml 中,因此如果您的 XML 配置和 Java 配置在不同的上下文中声明,则它们具有相同的 bean 定义。

如果您想将传统的 bean 配置从 XML 包含到 Java 配置中,那么您需要将 XML 资源导入该类,如下所示:

@ImportResource({"classpath*:your-configuration.xml"})

关于java - Spring - 引用 Java bean 在 XML 中创建 bean,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57848151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com