您的位置:首页技术文章
文章详情页

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

【字号: 日期:2024-02-03 09:08:37浏览:59作者:猪猪

问题描述

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 />--> <!--引入JavaConfing配置类--> <bean /> <!--xml配置--> <bean 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;@Configurationpublic 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’ availableException 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

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

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

问题解答

回答1:

<bean class='com.soundsystem.CDPlayer'> <constructor-arg ref='sgtPeppers'/></bean>意思是创建cdPlayer这个Bean的时候給CDPlayer的构造函数一个sgtPeppers对象

标签: java