Jpa + spring + struts 2

Pessoal , tenho umas duvidas sobre jpa e spring. Olhando o exemplo em http://struts.apache.org/2.x/docs/struts-2-spring-2-jpa-ajax.html e outros exemplos que encontro, gostaria de saber :

  • uma classe ‘service’ é uma classe de negocios(RN) ?
  • para classe service e dao, obrigatoriamente tenho que ter uma interface ?
  • no exemplo que eu dei acima, o service é definido no applicationContext :
<bean id="personAction" scope="prototype"
        class="quickstart.action.PersonAction">
        <constructor-arg ref="personService" />
    </bean>

como retirar essa amarração classe de negocios x viewer ?

Valeu

Herrera

  • uma classe ‘service’ é uma classe de negocios(RN) ? sim
  • para classe service e dao, obrigatoriamente tenho que ter uma interface ? é uma boa pratica de programação que o spring usa, vc for fazer testes automatizados (ex: junit) também vai precisar

No exemplo que você postou no momento que é criada a Action já criada a service, assim você nao precisa controlar isso é uma facilidade do spring
:smiley:

blz.

com faço para desacoplar o action do service ? vc tem algum exemplo ?

valeu

Não, uma classe de serviço faz chamadas para as suas classes de negócio.

Não precisa ter uma interface mas é uma ótima prática de programação usala para não ficar preso a instância do objeto, exemplo vc pode ter 2 classes daos implementadas com Hibernate e Toplink e usalas somente pela interface, o Spring que controla a instância dos objetos para vc fica totalmente desacoplado.

Para que vc quer esse desacoplamento?? Pensa numa action genérica e service genérico que faz o Crud de todas tabelas daí quando vc precisar fazer algo específico pra tela/tabela vc simplesmente sobrescreve(override) o método não seria uma boa?

Rodrigo eu vejo a service como uma RN, pois no conceito de tres camadas teriam:
JSP, Action (WEB) -> Service, Domain (Negocio, Lógica) -> DAO (Persistência)

tem algum exemplo bom ?

herrera