Spring + DBFluteの複数DB対応 Part1

@DBFlute, Java, Spring Framework
DBFluteはSpring FrameworkをDIコンテナに迎えて動作します。
ですが、複数DB対応を明示的に行ってはいません。
複数DB対応は必須でこれができないといざって時に本当に困ります。

現状、DBFluteコンポーネントが登録されたSpringのためのXMLを
自動生成しています。dbfluteBeans.xmlです。
Springにこれを読み込ませてDBFluteをSpring上で動かします。

Seasarであればdbflute.diconですが、複数DBの場合は
それぞれdbflute-foo.diconとdbflute-bar.diconという
ように自動生成して(設定をして)、それぞれのdiconが該当する
jdbc-xxx.diconを読み込むようにします。
これはSeasarがdiconファイルに階層の概念があって、どのdicon
にどのdiconをDIさせるかを自由に調整することができるので、
このように結構簡単に実現が可能です。
「dbflute-multipledb-seasar-example」がそのExampleです。

しかし、Springの場合だとSeasar的な言い方をすると全てが
ルートコンテナに登録されてしまい扱いがフラット(のはず)なので、
ファイルが別でも同じ名前や型のコンポーネントが複数あると
正しくDIされるかが疑問です。
(間違ってたら突っ込んで下さい)

簡単な検証ですが、実際にやってみたのは:
(DIされない単独のコンポーネント)

o 同じidのコンポーネントがあると先に読まれた方だけ初期化される。
o 違うidなら両方のコンポーネントが初期化される。

要は、違うidなら色々やりようがあるってところですが、
それだと、現状autowireのbyTypeを使ってDIしている箇所を
またベタベタ方式に戻してあげる必要があるのではないかと。
型でDIしている場合に、同じ型が複数定義されているとどうなる!?
できれば、
「同じファイルに定義されているコンポーネントを優先してDIする」
みたいな仕様になってるとうれしいですが、さすがにないかなぁ...
これはまだ未検証、これからやります。