IOC Spring

0 respostas
O
Bom dia. Estou tentando integrar o Spring com o Struts e na hora de efetuar a implementacao dos servicos me deu uma duvida. Como descrever uma interface e classe implementadora generica atraves de IOC por setter? Exemplo:
public interface GenericDAO<T, ID extends Serializable> {

	void salvar(T entity);

	void apagar(T entity);

	T consultarPorId(ID id);
}
public abstract class GenericHibernateDAO<T, ID extends Serializable>
		implements GenericDAO<T, ID> {

	private Class<T> persistentClass;
	private SessionFactory sessionFactory;

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	public GenericHibernateDAO() {

		this.persistentClass = (Class<T>) ((ParameterizedType) getClass()
				.getGenericSuperclass()).getActualTypeArguments()[0];

	}

	public Class<T> getPersistentClass() {
		return this.persistentClass;
	}

	public void salvar(T entity) {

		this.sessionFactory.getCurrentSession().save(entity);
	}

	public void apagar(T entity) {

		this.sessionFactory.getCurrentSession().delete(entity);
	}

	public void update(T entity) {
		this.sessionFactory.getCurrentSession().update(entity);
	}

	public T consultarPorId(ID id) {
		T persistentClass = null;
		persistentClass = (T) this.sessionFactory.getCurrentSession().get(
				this.getPersistentClass(), id);
		return persistentClass;
	}

}
Com isso eu teria por exemplo uma interface ClienteDAO que extends GenericDAO e uma classe ClienteDAOHibernate que extend GenericHibernate e implementa a respectiva interface. Mas dae na hora que criar meus servicos como a interface GenericService e classe GenericServiceImpl eu travei no meu arquivo xml e na classe. Como eu vou criar a minha instancia de GenericaDAOHibernate dentro de ClienteServiceImpl? Exemplo:
public class GenericServiceImpl implements GenericService {

	private GenericHibernateDAO<T, Serializable> genericDAO; // Isso aqui esta travado....
	
	
	public void apagar(Object entity) {
		// TODO Auto-generated method stub

	}

	public Object consultarPorId(Serializable id) {
		// TODO Auto-generated method stub
		return null;
	}

	public void salvar(Object entity) {
		// TODO Auto-generated method stub
		
	}

}

Obrigado...

Criado 7 de abril de 2008
Respostas 0
Participantes 1