SMART deployを使って悩んだので、自己メモ。

SMART deployを使って自動登録したコンポーネントインスタンスcreator.diconに書いてあるXXXCreatorが作成するようなので、変更したい場合はCreatorを作ってそれを登録すればいいです。

componentタグを使った場合はsingletonがデフォルトですが、例えばLogicCreatorの場合は


public LogicCreator(NamingConvention namingConvention) {
super(namingConvention);
setNameSuffix(namingConvention.getLogicSuffix());
setInstanceDef(InstanceDefFactory.PROTOTYPE);
}

とあるので、prototypeで作成されます。

なのでコンストラクタで、setInstanceDef(InstanceDefFactory.SINGLETON);を指定したCreatorクラスをcreator.diconに登録するとそのCreatorが作成したコンポーネントはsingletonで作成されます。