Duvida como converter para Spring(sou iniciante ) uns DAOS?

Olá,

uma duvida tenho um projeto que é criado um jar e é adicionado
a qualquer projeto para se conectar ao banco e fazer CRUD em um objeto(tabela).

Mas gostaria de converter para Spring mais estou em duvida como fazer em relação
ao exemplo abaixo onde vou fazer um insert no objeto Usuario mas antes
tenho que pegar Session (hibernate) e passar para os outros Facade (Session)que preciso
para pegue Filial e Nivel (tem que ser a mesma Session senão da erro two Session).

Pelo Spring daria pra fazer e diminuir esse codigo pra fazer um persist ???

Se alguém puder me ajudar agradeceria …me enviando url ou link

abs


lic static void main(String[] args) {
		//Pegar Session Hibernate
		Session session = HibernateUtil.openSession();
		tx = session.beginTransaction();
		try{
		
			NivelFacade NivelFacade     = new NivelFacade(session);
			FilialFacade FilialFacade   = new FilialFacade(session);
			UsuarioFacade UsuarioFacade = new UsuarioFacade(session);
			//Instancia o objeto Usuario
			Usuario p = new Usuario();
	
			//Ler o nivel
			Nivel nivel = NivelFacade.find(Nivel.class, 01L);
			p.setNivel(nivel);
	
			//Ler a filial
			Filial filial = FilialFacade.find(Filial.class, 900L);
			p.setFilial(filial);
			
			// Popula o Objeto Usuario
			p.setLogin("pwd999");
			p.setSenha("senha nova9");
			p.setDtInicial(new Date());
			p.setDtFim(new Date());
			p.setNomeUsuario("Usuario999");
			Long nrcpf = Long.valueOf("1234567890"); 
			p.setCpf(nrcpf);
			
			// Grava o objeto Usuario
			UsuarioFacade.persist(p);
			tx.commit();
			System.out.println("Id  = "+p.getId());

		}catch(DAOException d){
			tx.rollback();
			System.out.println("Erro ="+d);
		}catch(Exception e){
			tx.rollback();
			System.out.println("Erro ="+e);
		}
			
		}}
import org.apache.log4j.Logger;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

lic class HibernateUtil {

	private static final Logger logger = Logger.getLogger(HibernateUtil.class);
	private static final SessionFactory sessionFactory;
	private static ThreadLocal<Session> sessions = new ThreadLocal<Session>();
	static {
		sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
	}
	lic static Session openSession() {
		if (sessions.get() != null) {
			logger.error("Essa sessão está ainda aberta !! ");
			// grave, alguem nao fechou uma sessao ja aberta!
		}
		sessions.set(sessionFactory.openSession());
		return sessions.get();
	}

	lic static void closeCurrentSession() {
		sessions.get().close();
		sessions.set(null);
	}

	lic static Session currentSession() {
		return sessions.get();
	}
	
	public static SessionFactory getSessionFactory() {
	    return sessionFactory;
	}
	
}

Fala ai Paribe…

Bem, com o Spring você poderia configurar para fazer as dependencies injections dos Facades e dos DAOs.

Tentar criar métodos create, update , delete , genericos… (ta usando hibernate fica fácil)

E mudar os sets e gets para algum view helper…

Bem diminuir muito não diminuirá mas ficará bem mais organizado e padronizado. :wink:

Uma arquitura boa e simples…

View(JSP) --> (Struts /JSF) --> Actions / ManagedBeans --> Delegate --> Facade --> DAO
Abraços
Wanderson :twisted:

tem algum exemplo pra me basear como faço???