0

プロジェクトをコンパイルすると、このエラーが発生し、コンパイルが停止します

org.springframework.beans.factory.BeanDefinitionStoreException: ServletContext リソース [/WEB-INF/application-context.xml] から XML ドキュメントを解析中に予期しない例外が発生しました。ネストされた例外は java.lang.IllegalArgumentException です: 少なくとも 1 つの基本パッケージを指定する必要があります

この例外が発生する理由と解決方法。

4

3 に答える 3

2

Spring Docによると

Spring は、「ステレオタイプ化された」クラスを自動的に検出し、対応する BeanDefinitions を ApplicationContext に登録する機能を提供します。これらのクラスを自動検出し、対応する Bean を登録するには、XML に次の要素を含める必要があります。ここで、「basePackage」は 2 つのクラスの共通の親パッケージになります (または、それぞれの親パッケージを含むカンマ区切りのリストを指定できます)。クラス)。

したがって、アプリケーション コンテキストは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd">

     <context:component-scan base-package="org.example"/>

</beans>

パッケージを経由してスキャンできるようにするにcomponent-scanは、要件に従ってそれぞれの注釈を使用して Java クラスに注釈を付ける必要があります。Like@Controllersまたは@Serviceetc. 詳細はこちらをご覧ください。

于 2013-06-13T04:54:01.393 に答える
1
<context:component-scan base-package="Your package">

</context:component-scan>

これを構成ファイルに追加してみてください

于 2013-06-13T04:47:41.453 に答える
1

上記の私のコメントから

その理由は、アプリケーション コンテキストでアノテーション ドリブン コンテキスト構成が有効になっている ( <context:annotation-config></context:annotation-config>) が、Spring Bean をスキャンするための基本パッケージを提供する必要があることが考えられます。

アプリケーションのルート パッケージをベース パッケージとして追加し、Bean 定義をスキャンします。

<context:component-scan base-package="<your-app-base-package>"/>
于 2013-06-13T04:58:30.487 に答える