3

私は次のようなパッケージ構造を取得しました:

(...)
com.domain.group.dao
com.domain.group.service
(...)
com.domain.users.dao
com.domain.users.service

パッケージが「dao」または「service」で終わるすべてのクラスだけをスキャンする必要がある春を伝える方法はありますか?

これは同様の問題の例ですが、私の問題は解決しません。

4

2 に答える 2

5
 <context:component-scan base-package="com.domain">
     <context:include-filter type="regex" expression=".*dao\.[^.]*"/>
     <context:include-filter type="regex" expression=".*service\.[^.]*"/>
 </context:component-scan>

@See Spring Reference Chapter 4.10.3 フィルターを使用してスキャンをカスタマイズする


付録:(コメントのため

include-filter複数の およびを使用することは可能ですexclude-filterが、順序が重要です。最初include-filterに次にexclude-filter- を参照してくださいspring-context-3.0.xsd:

<xsd:element name="component-scan">
    ...
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="include-filter" type="filterType" minOccurs="0" maxOccurs="unbounded">
                ...
            </xsd:element>
            <xsd:element name="exclude-filter" type="filterType" minOccurs="0" maxOccurs="unbounded">
                ...
            </xsd:element>
        </xsd:sequence>
        ...
    </xsd:complexType>
</xsd:element>
于 2012-10-10T08:21:10.323 に答える
1
  <context:component-scan base-package="org.example">
     <context:include-filter type="regex" expression="YOUR REGEX"/>
  </context:component-scan>

PS: サービス正規表現用と dao 用に 1 つずつ、複数の include-filters を持つことができます

これは、Spring リファレンス ガイドの「フィルタを使用してスキャンをカスタマイズする」セクションから取得したものです。

于 2012-10-10T08:16:08.603 に答える