| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2006 20:49:49
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
saoj wrote:
O próprio comentário no código acima está dizendo o que esses filtros fazem, só que está em ingles.
É fundamental entender bem IoC e DI, não só para o Mentawai, mas para a sua vida.
Poisé... agora que eu to vendo o conceito de IoC... eu já usava mas não sabia que tinha um nome definido, hehe...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2006 21:14:12
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Nesse exemplo:
Code:
ac.addFilter(new IoCFilter(c1, "talker1", IoCFilter.ACTION));
ac.addFilter(new IoCFilter(c2, "talker2", IoCFilter.SESSION));
ac.addFilter(new IoCFilter(c2, "talker3", IoCFilter.APPLICATION));
Qual é a diferença entre IoCFilter.ACTION, IoCFilter.SESSION, IoCFilter.APPLICATION? Ao meu ver, isso parece ser a duração, ou tempo de vida, de uma variável ou objeto numa aplicação, é isso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2006 21:25:02
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Nesse exemplo, vc faz referência a uma classe JdbcTransaction.class... aonde posso consegui-la para ver a implementação dela? Essa classe implementa a org.mentawai.transaction.Transaction, né?
Muito obrigado...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2006 21:29:24
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Acabei de colocar o primeiro FAQ do mentawai sobre IoC.
É mais um mini-tutorial.
Dá uma olhada aqui:
http://forum.mentaframework.org/posts/list/193.page
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2006 21:38:00
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
saoj wrote:
Acabei de colocar o primeiro FAQ do mentawai sobre IoC.
É mais um mini-tutorial.
Dá uma olhada aqui:
http://forum.mentaframework.org/posts/list/193.page
Valew, pelo que entendi:
Code:
private Component pessoaDAO;
public void init(){
this.pessoaDAO = new DefaultComponent( HibernatePessoaDAO.class );
}
Crio um componente que agora é um HibernatePessoaDAO, mas que mais tarde posso mudar para OraclePessoaDAO...
Code:
this.action( "MeuEspaco" , MeuEspacoAction.class , "addPessoa" )
.filter( new IoCFilter( pessoaDAO , "pessoaDAO" , IoCFilter.REQUEST ) )
.on( MeuEspacoAction.SUCCESS , fwd( "MeuEspaco.pessoaCadastrada.jsp" ) )
.on( MeuEspacoAction.ERROR , fwd( "MeuEspaco.pessoaNaoCadastrada.jsp" ) );
Até aqui bza..
Agora, meu objeto pessoaDAO vai para meu action?
Code:
public String addPessoa() throws Exception {
PessoaDAO pessoaDAO = ( PessoaDAO ) input.getValue( "pessoaDAO" );
Pessoa pessoa = new Pessoa();
pessoa.setNome( input.getStringValue( "nome" ) );
pessoa.setSobrenome( input.getStringValue( "sNome" ) );
pessoa.setEmail( input.getStringValue( "email" ) );
pessoa.setNascimento( Calendar.getInstance() );
pessoa.setLogin( input.getStringValue( "login" ) );
pessoa.setSenha( input.getStringValue( "senha" ) );
try{
pessoaDAO.inserir( pessoa );
}catch( Exception e ){
}
return SUCCESS;
}
Acho que não né? Pra onde vai esse dao? ConnectionFilter acho que não vou precisar pq estou usando Hibernate, né? Vou dar uma olhada nesse DependencyFilter...
Vlw...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2006 22:16:30
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
O IoCFilter coloca no input da action, como vc falou.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2006 08:09:10
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Alguém q tem um tempinho sobrando pode me explicar o que é e para que serve o DependencyFilter? Eu entrei nesse link, mas não entendi como posso usar isso na minha transação com minhas DAO's...
vlw!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2006 08:46:06
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
No input vc tem uma connection e um DAO, certo ?
O Dao precisa da connection, em outras palavras depende da connection.
O DependencyFilter pega a connection e enfia no DAO.
Apenas isso...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2006 10:03:34
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Ok... no exemplo do MyBooks vc não tá usando Hibernate. Percebi que org.mentawai.transaction tem duas classes: a HibernateTransaction e a JdbcTransaction e o MyBooks usa o JdbcTransaction . O MySQLBookDAO, por exemplo, do MyBooks, precisa de uma conn, Hibernate não precisa, a configuração de conexão é feita pelo Hibernate.cfg.xml... como poderia fazer, nesse caso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2006 10:37:34
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Se o seu DAO/Modelo está usando o hibernate, então ele precisa de uma session do hibernate.
Identico ao caso anterior, só que ao invés de usar um ConnectionFilter vc usa um HibernateFilter e ao invés de injetar uma connection vc injeta uma session.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2006 11:17:20
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
saoj wrote:
Se o seu DAO/Modelo está usando o hibernate, então ele precisa de uma session do hibernate.
Identico ao caso anterior, só que ao invés de usar um ConnectionFilter vc usa um HibernateFilter e ao invés de injetar uma connection vc injeta uma session.
Entendi:
Code:
ac.addFilter(new DependencyFilter("conn", "transaction", "connection"));
Aqui vc tá atribuindo, através do setConnection() da DAO a conn...
No Hibernate fica tipo:
Code:
ac.addFilter(new DependencyFilter("session", "transaction", "session"));
Aqui to atribuindo ao setSession do meu DAO do Hibernate a session...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2006 11:21:56
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
"conn", "transaction", "connection"
significa
injeta a conn na transaction usando setConnection.
Leia a documentação disso direitinho...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2006 11:28:47
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
saoj wrote:
"conn", "transaction", "connection"
significa
injeta a conn na transaction usando setConnection.
Leia a documentação disso direitinho...
Então vai ficar assim:
Code:
.filter( new DependencyFilter( "session" , "pessoaDAO" , "session" ) )
injeta session na pessoaDAO usando setSession, mas vou ter que criar um outro DependencyFilter pra session?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2006 11:49:32
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Pode ser só "session", "pessoaDao" pois o attributo é igual a chave.
Para criar uma session e colocar no input vc usa o HibernateFilter.
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2006 11:56:25
|
andre_guitar7
![[Avatar]](/images/avatar/f033ab37c30201f73f142449d037028d.jpg)
Joined: 21/03/2006 12:03:21
Messages: 259
Location: Curitiba - PR
Offline
|
Se eu fizer assim:
Code:
.filter( new HibernateFilter() )
.filter( new DependencyFilter( HibernateFilter.KEY , "pessoaDAO" , "session" ) );
HibernateFilter.KEY não me retorna uma session?
|
|
|
 |
|
|