Galera, independente de se usar @Service, é possível separar uma
classe que tenha as regras de negócio nela e ela ser anotada com
@Component. Ou até mesmo @Repository e vai funcionar. O importante é
saber as diferenças e vantagens de se utilizar cada anotação spring
com a necessidade.
@Service
->Essa anotacao, assim como @Repository e @Controller, permitem que
possa ser utilizado orientacao a aspectos, criando pontos para
interceptar os metodos da classe. Ou seja, em um primeiro nível, se
for uma camada de servicos ou negócios, ou @Component ou @Service
deveriam ser utilizados. E o @Service tem essa vantagem a mais q o
@component
@Repository
->Repository permite que o spring traduza várias excecoes de
persistencia para excecoes conhecidas. Não eh preciso esperar excecao
JPA ou JDO ou Hibernate. Ele captura essas exceptions especificas e
encapsula em excecoes spring automaiticamente, deixando transparente
para a aplicacao qual tipo de persistencia esta sendo utilizado. Faz
todo sentido colocar em uma classe que funcione com data acess objet,
e a documentacao spring inclusive fala disso.
On 3 jan, 15:31, Walter Mourão <
walter.mou...@gmail.com> wrote:
> Oi Rafael,
> pois é, eu entendo e respeito a abordagem, só não gosto muito (ou não me
> acostumei) e prefiro a abordagem de modelo anêmico, provavelmente reflexo
> de alguns traumas do tempo do Delphi... ;-)
>
> Sds,
>
> Walter Mourãohttp://waltermourao.com.brhttp://arcadian.com.brhttp://
oriens.com.br
>
> 2012/1/3 Rafael Ponte <
rpo...@gmail.com>
>
> > Walter,
>
> > Assim como o Bruno comentou, eu também coloco minhas regras de negócio no
> > meu modelo. Meus services/façades (ou seja, app layer) eu utilizo para
> > orquestrar meus objetos de modelo e a interação entre eles e demais
> > componentes.
>
> > 2012/1/3 Walter Mourão <
walter.mou...@gmail.com>
> >> 2012/1/3 Bruno Maomeh <
brunomao...@gmail.com>
>
> >>> as regras de negócio não deveria estar dentro do teu modelo? por
> >>> exemplo.. se você tem uma classe pessoa, e essa pessoa precisa andar.. você
> >>> criaria uma service para ela andar?
>
> >>> class pessoaService {
> >>> void anda(Pessoa pessoa) {
> >>> pessoa.setPernaDireita("40 cm");
> >>> pessoa.setPernaEsquerda("40 cm");
> >>> ...
> >>> }
> >>> }
>
> >>> acho isso meio errado! :)
>