spring y su sqlmapclientemplate

Hola:

Estoy usando ibatis y para su dao tengo que extender e lsqlmpaclientdaosupport

pero tengo una duda he mirado algunos ejemplos y por cada metodo hace
SqlMapClientTemplate templateSpring=this.getSqlMapClientTemplate

esto lo hace por cada metodo lugo templateSpring.metodo , la pregunta mia
es puedo declarar esto al principio de la clase y su usar la misma referencia

o tengo que llamar al template por cada metodo asi

SqlMapClienteTemplate nombredeltemplate=this.getSqlMapTemplate();
this.nombredeltemplate.metodo
en donde metodo(insertar, update.etc..)

esto por cada metodo o es mejor hacer una llamada a la template y declararla al principio???

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Nopalin

No es instanciable

Todos tus daos tiene una referencia a sqlMapClientTemplate que es el intermediario para la comunicacion con ibatis. Cuando tu llamas un metodo de tu dao se supone que desde el es donde llamas a los metodos del template (insert, delete, update) para realizar la persistencia de informacion. Cuando spring realiza la instancia de tu clase dao el mismo se encarga de inyectarle la dependencia con el template siempre y cuando lo hayas puesto, esto quiere decir que en la clase padre de tu dao existe una propiedad para almacenar el template, pero como es privada necesitas llamar el metodo getSqlMapClientTemplate() para que te permita usarlo y realizar la persistencia. Segun entendi lo que tu quieres hacer es crear otra propiedad en tu clase dao y llamar al metodo get para guardar el template ahi no? en realidad lo que harias seria repetir el trabajo que ya hace tu clase Support (la que extiende tu dao). Si en los ejemplos que viste crean la variable local al metodo para almacenar la referencia del template ahi, es por mera comodidad, por que seguramente necesitaran el template varias veces y no quieren declarar la llamada al metodo get.

Vaya en resumidas cuentas, no no puede por que tu ni si quiera instancia el dao, lo hace spring y entonces tendrias que implementar tu dao la interfaz InitializingBean para poder entoncer hacer esa llamada que dices, pero no es recomendable.