SpringプロジェクトでIbatisの設定に愚かな問題があります。これらすべてがどのように設定されたかについて私に飛びついてはいけません。私は「社内プロジェクト構造ポリシー」に従っているだけです。
これが構造です。アプリケーションで使用されるすべての構成ファイルを含む「src/ main / resources / META-INF /」フォルダーがあり、次に「src / test / resources /META-INF/ 」があります。 "これには、単体テストを実行するためのさまざまな設定を持つ構成ファイルのみが含まれています。
この場合、ファイルは1つだけで、src /main/resources/META-INF/spring/application-config.xmlがsrc/ test /resources/META-INF/spring/test -application -config.xmlになりました。その部分はうまく機能するので、2つの間の小さな違いについては説明しません。
test-application-config.xmlは、src / main / resources / META-INF / spring /data-access-config.xmlファイルを正常にインポートします。これにより、src / main / resources / META-INF / ibatis /が使用されます。 sqlmap-config.xmlは正常に...その後は地獄に行きます。
これまで、Springを使用してクラスパス内の次の構成ファイルを検索していましたが、sqlmap-config.xmlにアクセスすると、Springフレームワークをibatisフレームワークに残します。これにより、Springフレームワーク内で定義されたリソースファイルがクラスパス(それが意味するものは何でも、ドキュメントから取得されます)。
sqlmap-config.xml内には、 src / main / resources / META-INF / ibatis /mappingフォルダー内にある使用しているいくつかのリソースファイルが定義されています。それらは次のように参照されます:
<sqlMapConfig><sqlMap resource="/META-INF/ibatis/mapping/MyObject.xml"/></sqlMapConfig>
アプリを通常どおり実行すると正常に機能しますが、JUnitテストケースを実行すると、ファイル/META-INF/ibatis/mapping/MyObject.xmlが見つからないことを示すIO例外が発生します。
sqlmap-config.xmlのパスを「mapping/MyObject.xml 」に変更しようとしましたが、役に立ちませんでした。また、Springクラスパスプレフィックス「classpath:META-INF / ibatis / mapping / MyObject.xml」を使用しようとしましたが、どちらも機能しませんでした。
アプリとjunitの両方で機能するようにIbatisを適切に設定する方法について誰かが知っているでしょうか?
ありがとう。