Dúvida no uso do Spring

0 respostas
R

Desenvolvo usando Flex + Java + Hibernate + Spring (Usei o Spring, porque, o tutorial que eu usei para aprender essa integração usava essa arquitetura), e nem me importei nos reais benefícios que o Spring iria trazer (já que sempre tinha ouvido dizer que era bom usar,entre outras coisas, apenas coisas positivas).

Agora que aprender como realmente funciona o Spring, já peguei vários materiais na internet mas ainda não compreendi muito bem, uma coisa que eu não entendo.

Exemplo: Tenho a entity Usuario (com as propriedades do usuários), uma interface UsuarioRepository, com os métodos usados na UsuarioDao(que vai implementar os métodos.E também tenho uma UsuarioService que é uma interface(igual UsuarioRepository) que é usada para servir de interface para a UsuarioServiceImpl, que “instancia” os métodos criados no UsuarioDao.

Então, supondo a UsuarioRepository, tem no inicio da classe uma tag @Repository, e um metodo remove:

...

@Override
	public void remove(Usuario usuario) {
		getHibernateTemplate().delete(usuario);
	}

...

No UsuarioServiceImpl, vai ter as tags @Service e @Transactional no incio da classe e o método remove

...

private UsuarioRepository usuarioRepository;

	@Autowired
	public void setUsuarioRepository(UsuarioRepository usuarioRepository) {
		this.usuarioRepository = usuarioRepository;
	}

@Override
	public void remove(Usuario usuario) throws Exception {
		try {
            this.usuarioRepository.remove(usuario);
        } catch (Exception e) {
            throw new Exception("Não foi possível excluir." +e.getMessage());
        }	
	}

...

Dúvidas:

1)Por que no UsuarioServiceImpl eu crio uma variável UsuarioRepository(que é a interface), em vez, de criar uma variavel do UsuarioDao (já que o UsuarioDao que tem a tag @Repository no inicio)?

2)No flex utilizo esses métodos para fazer o CRUD, com a tag RemoteObject.Só que não sei como faço para utilizá-las numa classe Java :shock:

Como eu faria em uma classe Java para remover um usuario usando esse método implementado? Ou em um servlet que use um dos métodos desses serviços?

Criado 29 de abril de 2009
Respostas 0
Participantes 1