Dúvida DDD - injetar o Repository na classe de domínio  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
ricardolecheta
GUJ Master
[Avatar]

Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline

Bom dia pessoal,

faz um tempo que eu tinha lido este post no blog da caelum, e vários outros aqui no guj sobre DDD.

http://blog.caelum.com.br/2007/06/09/repository-seu-modelo-mais-orientado-a-objeto/

No post da caelum o Paulo e o Fábio discutiram como injetar o Repository no objeto de domínio.
Achei bacana a solução.

É assim que vocês estão fazendo hoje em dia? Ou alguém utiliza algum interceptor ou algo do tipo?

em que fim deu este post ? colocaram na prática ? o que aconteceu ?

obrigado

Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

Oi Ricardo,

Eu comecei o projetinho hinjector (http://sourceforge.net/projects/hinjector) justamente por isso.

Ora, se as entidades já são gerenciadas pelo Hibernate/JPA, por que não então já fazer o hibernate injetar algumas dependências?

O Hinjector é uma tentativa de prover capacidade de injeção de dependências à Session do hibernate, aproveitando os containers de DI já existentes.

Por enquanto, só com o PicoContainer: código de Exemplo.

edit: o problema é que eu estou realmente com pouquíssimo tempo para mexer nele ultimamente. Vamos ver se feveireiro sai alguma coisa.

edit2: esqueci de comentar que existem coisas similares como o HibernatePicofier e o DependencyInjectionInterceptorFactoryBean do Spring. O problema deles é que não são contextuais (não permitem injetar a Session atual) e o Hinjector deveria suportar qualquer container DI, inclusive os embutidos em frameworks web como o do vraptor e o do mentawai...

This message was edited 2 times. Last update was at 22/01/2008 12:57:16


Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
ricardolecheta
GUJ Master
[Avatar]

Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline

Obrigado Fábio,

vou dar uma olhada nele...

então é assim mesmo que estão fazendo né? Se eu fizer isto no DAO fica legal.

obrigado

This message was edited 1 time. Last update was at 22/01/2008 12:57:24


Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/
LeoNicolas
Debugger

Membro desde: 13/04/2005 16:09:48
Mensagens: 60
Localização: Rio de Janeiro - RJ
Offline

E para hibernate + Spring, alguém conhece alguma forma de fazer essa injeção?
[WWW]
jgbt
GUJ Master
[Avatar]

Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline

pq não deixar o Spring cuidar das injeções de dependencias?
qual a duvida?

[]´s

João Bier
Desenvolvedor Java
[Email]
LeoNicolas
Debugger

Membro desde: 13/04/2005 16:09:48
Mensagens: 60
Localização: Rio de Janeiro - RJ
Offline

Hoje já utilizo o Spring para fazer a injeção de dependência, mas o problema é que nos objetos de domínio, que são recuperados pelo Hibernate, ainda não consegui que o Spring fizesse isso.
[WWW]
jgbt
GUJ Master
[Avatar]

Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline

uma abordagem possivel seria como descrito no link do blog da Caelum.
fazer no load quando recupera o objeto.
ou quem sabe um interceptor.

[]´s

João Bier
Desenvolvedor Java
[Email]
LeoNicolas
Debugger

Membro desde: 13/04/2005 16:09:48
Mensagens: 60
Localização: Rio de Janeiro - RJ
Offline

Achei o link abaixo falando sobre o assunto:

http://igorstoyanov.blogspot.com/2005/12/dependency-injection-or-service.html

Esse post é de 2005. Será que o Spring 2.5.x já possui algo que resolva o problema?
[WWW]
Thiago Senna
GUJ Master
[Avatar]

Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline

LeoNicolas wrote:

Esse post é de 2005. Será que o Spring 2.5.x já possui algo que resolva o problema?


Sim. É a anotação @Configurable. É DI + AOP.
[Email]
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

LeoNicolas wrote:E para hibernate + Spring, alguém conhece alguma forma de fazer essa injeção?

Que coincidência assustadora essa sua pergunta.

Essa semana o Rafaeil Steil (aqui do GUJ/JForum) mandou um patch sensacional para o hinjector para suportar injeção com o Spring também, além do Pico que já funcionava.

Ainda estamos devendo documentação, exemplos e site, mas o Rafael já está até usando no JForum 3.

https://sourceforge.net/projects/hinjector

[WWW] [MSN] [ICQ]
LeoNicolas
Debugger

Membro desde: 13/04/2005 16:09:48
Mensagens: 60
Localização: Rio de Janeiro - RJ
Offline


Vi a pouco que o spring 2.5 faz isso, tanto para objetos criados pela framework ORM quanto por new utilizando a anotação @Configurable.

http://static.springframework.org/spring/docs/2.5.x/reference/aop.html#aop-atconfigurable

O problema é que estou seguindo o que diz na documentação e mesmo assim ainda não consegui fazer funcionar.
[WWW]
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

Para isso funcionar, muito provavelmente você precisa habilitar instrumentação de código, ou fazer pré-compilação.

Tem em algum lugar da documentação do spring. Você vai precisar passar um argumento extra para a JVM (-javaagent spring-agent.jar).

Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
Thiago Senna
GUJ Master
[Avatar]

Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline

De fato, fazer o @Configurable funcionar é um saco. Mas funfa sim.

Eu particularmente não gosto de usar o @Configurable, mas vale a pena brincar com ele. Sugiro depois dar uma olhada no fonte do spring. Depois crie sua própria anotação para então desamarrar o spring do domain
[Email]
rmp
Thread.start()

Membro desde: 23/01/2010 13:53:01
Mensagens: 49
Offline

Acho que estou tendo um problema bem parecido com o título deste topico.
Será que alguem poderia ver se já passou por isso?

http://guj.com.br/posts/list/0/196803.java

 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team