1. ホーム
  2. Java

名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法

2022-02-07 04:05:16

SpringMVCフレームワークを使用すると、この完全なERROR。

BeanCreationException: 名前 'accountCtrl' を持つ Bean の作成に失敗しました。Injection of autowired dependencies BeanCreationException: BeanCreationException: Could not autowire field: private com.bing.mapper.wxcms AccountService com.bing.mapper.wxcms.ctrl.AccountCtrl.accountService; nested exception is org.springframework.beans.factory.AccountService.AccountService.AccountService.AccountServices. NoSuchBeanDefinitionException です。NoSuchBeanDefinitionException: No qualifying bean of type [com.bing.mapper.wxcms.service.AccountService] found for dependency: expected at Dependency annotations.NoSuchBeanDefinitionException: {この場合、次のようになります。Autowired(required=true)}となります。

エラー報告の例外はNoSuchBeanDefinitionExceptionで、注入する内容(サービスまたはダオ)が見つからなかったという内容で、2つの方法で動作しています。

1. springの設定で、対応するパッケージがscanに追加されているか確認する。

daoの設定です。
<! -- 4.Daoインタフェースのパッケージを設定し、Daoインタフェースを動的に実装し、springコンテナにインジェクトする -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <! -- sqlSessionFactoryへのインジェクション -->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    <! --スキャンするDaoインターフェイスパッケージを指定します -->
    <property name="basePackage" value="com.bing.mapper.**.dao"/>
</bean>
サービスパッケージの下でアノテーションを使用するすべての型をスキャンします。
<context:component-scan base-package="com.bing.mapper.**.service"/>


2. 対応するアノテーションが追加されているかどうかを確認する、多分@serviceではない

@Service
public class AccountServiceImpl implements AccountService {

    @Autowired
    private AccountDao accountDao;

    public List<Account> listForPage(Account searchEntity) {
        return accountDao.listForPage(searchEntity);
    }
}