Escopo application managed-bean jsf  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
maurenginaldo
JavaEvangelist
[Avatar]

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.
[Email] [WWW] [MSN]
maurenginaldo
JavaEvangelist
[Avatar]

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.
[Email] [WWW] [MSN]
rponte
JavaEvangelist
[Avatar]

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/
[WWW]
maurenginaldo
JavaEvangelist
[Avatar]

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.
[Email] [WWW] [MSN]
rponte
JavaEvangelist
[Avatar]

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/
[WWW]
maurenginaldo
JavaEvangelist
[Avatar]

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.
[Email] [WWW] [MSN]
rponte
JavaEvangelist
[Avatar]

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/
[WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team