私は次のJavaクラスを持っています:
package configuration;
import common.config.ConfigurationService;
public class AppConfig {
private ConfigurationService configurationService;
public AppConfig(ConfigurationService configurationService){
this.configurationService = configurationService;
}
また
public class ConfigurationServiceImpl
implements ConfigurationService, Runnable
{...
アプリケーションコンテキストファイルは次のとおりです。
<bean id="appConfig" class="configuration.AppConfig" scope="prototype">
<constructor-arg ref="configurationService"></constructor-arg>
</bean>
<bean id="configurationService" class="common.config.ConfigurationServiceImpl" scope="singleton" />
<bean id="propertyPlaceholderConfigurer" class="common.config.PropertyPlaceholderConfigurer">
<constructor-arg ref="configurationService" />
<constructor-arg ref="serviceName" />
</bean>
<bean id="serviceName" class="java.lang.String"><constructor-arg value="filter"/></bean>
初期化中に次のエラーが発生し、Beanが初期化されません。
原因:org.springframework.beans.factory.BeanCreationException:クラスパスリソース[conf / applicationContext.xml]で定義された「appConfig」という名前のBeanの作成中にエラーが発生しました:1つのコンストラクター引数が指定されましたが、Bean「appConfig」に一致するコンストラクターが見つかりません(ヒント:型のあいまいさを避けるために、単純なパラメーターのインデックスおよび/または型引数を指定します)
次のようにJavaクラスコードを変更すると、Springインジェクションは機能します。
package configuration;
import common.config.ConfigurationServiceImpl;
public class AppConfig {
private ConfigurationServiceImpl configurationService;
public AppConfig(ConfigurationServiceImpl configurationService){
this.configurationService = configurationService;
}