| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/06/2008 10:38:38
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
Oi pessoal,
Estou com algumas dúvidas com relação a managed's beans de escopo application no jsf.
1º) Quando eu crio uma MB com o escopo application, quando ele é criado? Quando dou start na aplicação no Tomcat ou quando o 1º usuário entra na aplicação?
2º) Se ele é da aplicação, o custo de memória no servidor eu só gasto uma vez? Independente de quantos usuários entrarem?
3º) Se no meu sistema tenho listas ou informações que são pouco alteradas é recomendado que eu crie um MB com essas informações e deixo ele no escopo application?
4º) Qual a relação ou diferença de um MB com o espoco application e técnicas de cache? São a mesma coisa ou são diferentes?
5º) Se essas informações tem pequenas alterações, é recomendado que eu crie um processo que de tantas em tantas horas captura esse MB e atualize seu resultado, isso é possível ? (pelo que li sim)
6º) Tudo isso que citei acima, são boas práticas e são recomendados?
Obrigado a todos.
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/06/2008 14:47:03
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
maurenginaldo wrote:
1º) Quando eu crio uma MB com o escopo application, quando ele é criado? Quando dou start na aplicação no Tomcat ou quando o 1º usuário entra na aplicação?
Já tenho resposta para minha 1ª dúvida . Li agora no livro JavaServer Faces - Fundamentos do David Geary e Cay Horstmann, que no escopo de aplicação o MB é criado quando é requisitado pela 1ª vez por qualquer instância da aplicação e permanece ativo até a aplicação web ser removida do servidor de aplicações.
Alguém tem mais alguns conceitos sobre as outras questões.
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/06/2008 23:13:01
|
rponte
JavaEvangelist
![[Avatar]](/images/avatar/37a90a1fe7512a804347fa3e572c6b86.png)
Membro desde: 18/02/2008 10:06:25
Mensagens: 413
Offline
|
Humm.. vamos lá..
2º) Se ele é da aplicação, o custo de memória no servidor eu só gasto uma vez? Independente de quantos usuários entrarem?
Sim, só existirá uma única instância do managed bean na aplicação.
3º) Se no meu sistema tenho listas ou informações que são pouco alteradas é recomendado que eu crie um MB com essas informações e deixo ele no escopo application?
Se estas informações forem compartilhadas para a aplicação e/ou para todos os usuários então se torna recomendável deixa-lo no escopo de application.
4º) Qual a relação ou diferença de um MB com o espoco application e técnicas de cache? São a mesma coisa ou são diferentes?
Guardar objetos no escopo de application pode ser considerado uma forma de cache dependendo do caso, mas não quer dizer que o escopo sempre esteja funcionando como um cache.
O ideal é que o managed bean ou objeto no escopo de aplicação não fiquem sendo alterados, o ideal é que eles sejam imutáveis. Acho melhor você explicar qual o cenário do problema, assim quem sabe possamos encontrar uma solução para tuas dúvidas.
6º) Tudo isso que citei acima, são boas práticas e são recomendados?
Sinceramente não entendi bem onde as suas perguntas tem a ver com boas práticas. No final das contas vai depender do caso.
|
Rafael Ponte
http://www.rponte.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2008 12:42:00
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
rponte wrote:
O ideal é que o managed bean ou objeto no escopo de aplicação não fiquem sendo alterados, o ideal é que eles sejam imutáveis. Acho melhor você explicar qual o cenário do problema, assim quem sabe possamos encontrar uma solução para tuas dúvidas.
Por exemplo, uma das partes da minha aplicação será um seção de notícias, que não necessariamente será atualizado diariamente, e quando atualizado uma ou duas vezes ao dia. Seria bom criar um MB com escopo application com um List dessas notícias e atualizá-lo quando uma nova notícia seja cadastrada?
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2008 13:10:29
|
rponte
JavaEvangelist
![[Avatar]](/images/avatar/37a90a1fe7512a804347fa3e572c6b86.png)
Membro desde: 18/02/2008 10:06:25
Mensagens: 413
Offline
|
Acredito que seja melhor você sempre deixar isso em escopo de request, e ir buscando no banco. Se realmente precisar de cache então utilize algum framework como o ehcache ou configuração de cache do seu framework de persistência.
|
Rafael Ponte
http://www.rponte.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2008 14:52:32
|
maurenginaldo
JavaEvangelist
![[Avatar]](/images/avatar/d82d678e9583c1f5f283ec56fbf1abb7.png)
Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline
|
Rafael,
Estava tentanto entender no que os MB de escopo application poderiam ser aplicados. Baseado em suas explicações devo utilizar para guardar valrores que não mudam e que não busco do banco.
Sou totalmente leigo com relação a cache (ainda não implementei nada, somente li algumas situações). Baseado no exemplo das notícias, o que é mais indicado, utilizar o ehcache ou cache de segundo nível com o hibernate? (se falei alguma bobagem me corrija).
Obrigado pela atenção!
|
Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2008 15:01:10
|
rponte
JavaEvangelist
![[Avatar]](/images/avatar/37a90a1fe7512a804347fa3e572c6b86.png)
Membro desde: 18/02/2008 10:06:25
Mensagens: 413
Offline
|
Estava tentanto entender no que os MB de escopo application poderiam ser aplicados. Baseado em suas explicações devo utilizar para guardar valrores que não mudam e que não busco do banco.
Um exemplo comum de se utilizar um managed bean ou mesmo qualquer outro objeto no escopo de application é para manter a lista de UFs, algo como:
Sou totalmente leigo com relação a cache (ainda não implementei nada, somente li algumas situações). Baseado no exemplo das notícias, o que é mais indicado, utilizar o ehcache ou cache de segundo nível com o hibernate? (se falei alguma bobagem me corrija).
Se você usa Hibernate então utilize o cache dele
|
Rafael Ponte
http://www.rponte.com.br/ |
|
|
 |
|
|