Spring注入,在XML配置中引用JavaConfig,结果找不到Config中的bean

发布于 2022-09-04 14:59:41 字数 2162 浏览 17 评论 0

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">

    <!--<bean id="sgtPeppers" class="com.soundsystem.SgtPeppers"/>-->
    <!--引入JavaConfing配置类-->
    <bean class="com.soundsystem.CDConfig"/>
    <!--xml配置-->
    <bean id="cdPlayer" class="com.soundsystem.CDPlayer">
        <constructor-arg ref="sgtPeppers"/>
    </bean>
</beans>

sgtPeppers的bean配置在JavaConfig中:

package com.soundsystem;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CDConfig {
    @Bean
    public CompactDisc sgtPeppers(){
        return new SgtPeppers();
    }
}

执行后报错:
警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cdPlayer' defined in class path resource [META-INF/spring/cdplayer-config.xml]: Cannot resolve reference to bean 'sgtPeppers' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sgtPeppers' available
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cdPlayer' defined in class path resource [META-INF/spring/cdplayer-config.xml]: Cannot resolve reference to bean 'sgtPeppers' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sgtPeppers' available

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sgtPeppers' available

图片描述

IDEA显示是绿色的,但是为什么找不到

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

做个ˇ局外人 2022-09-11 14:59:41
<bean id="cdPlayer" class="com.soundsystem.CDPlayer">
    <constructor-arg ref="sgtPeppers"/>
</bean>
意思是创建cdPlayer这个Bean的时候給CDPlayer的构造函数一个sgtPeppers对象
孤独患者 2022-09-11 14:59:41

开启注解
<context:annotation-config />

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文