Spring - Construtor, como fazer?

4 respostas
A
public class ContatoDAOImpl extends GenericDaoiBATIS<Contato, Integer>
		implements ContatoDAO {

	public ContatoDAOImpl(Class<Contato> persistentClass) {
		super(persistentClass);
		// TODO Auto-generated constructor stub
	}

Como injetar um bean do tipo Class<Contato> no meu construtor?

4 Respostas

A

Pessoal , resolvi meu problema parcialmente.
Podem da um CODE-Review?
Meu applicationContext:

&lt;bean id="contatoDao" class="afs.dao.ContatoDAOImpl"&gt; &lt;constructor-arg value="afs.beans.Contato"/&gt; &lt;property name="dataSource" ref="dataSource" /&gt; &lt;property name="sqlMapClient" ref="sqlMapClient" /&gt; &lt;/bean&gt;

Meu DAO(construtor):

@SuppressWarnings("unchecked") public ContatoDAOImpl(String clazz) throws ClassNotFoundException { super((Class&lt;Contato&gt;) Class.forName(clazz)); }

A
Outra maneira, mas nao achei muito limpa... Meu applicationContext:
&lt;bean id="contatoDao" class="afs.dao.ContatoDAOImpl" factory-method="createInstance"&gt;
		&lt;constructor-arg value="afs.beans.Contato"/&gt;		
		&lt;property name="dataSource" ref="dataSource" /&gt;
		&lt;property name="sqlMapClient" ref="sqlMapClient" /&gt;
	&lt;/bean&gt;
Meu DAO:
@SuppressWarnings("unchecked")
	public static ContatoDAOImpl createInstance(String clazz) {
		try {
			return new ContatoDAOImpl((Class&lt;Contato&gt;) Class.forName(clazz));
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return null;
	}

	public ContatoDAOImpl(Class&lt;Contato&gt; persistentClass) {
		super(persistentClass);
	}
Mauricio_Linhares

Não deveria ser necessário fazer isso, já que o Spring sabe transformar de String pra Class, mas já que não funcionou pra você, tente assim:

&lt;bean id="contatoDao" class="afs.dao.ContatoDAOImpl" factory-method="createInstance"&gt; &lt;constructor-arg type="java.lang.Class" value="afs.beans.Contato"/&gt; &lt;property name="dataSource" ref="dataSource" /&gt; &lt;property name="sqlMapClient" ref="sqlMapClient" /&gt; &lt;/bean&gt;

A

Obrigado Mauricio…
vlw!

Criado 21 de maio de 2007
Ultima resposta 25 de mai. de 2007
Respostas 4
Participantes 2