Framework para gerenciar meu Beans

Java

14/04/2015

Estou com uma duvida, vejo muitos exemplos atuais utilizando @ManagedBean e Injetando com @ManagedProperty("#") e outra forma que atualmente possui poucos exemplos
@Controller

@Resource
private Teste teste;

Qual seria a diferença das duas, sei que uma é especificação do JSF 2.0 e a outra é especificação CDI do spring, mas qual seria a melhor maneira para injetar a informação e salvar no banco de dados, ou recuperar do banco de dados e mostrar ?
Roger Mendes

Roger Mendes

Curtidas 0

Respostas

Ronaldo Lanhellas

Ronaldo Lanhellas

14/04/2015

A resposta é depende do contexto que você está trabalhando. Se você está dentro de um ManagedBean então você deverá usar a injeção do JSF, se tiver fora do escopo do JSF então poderá usar o Spring ou CDI, o que melhor lhe atender.
GOSTEI 0
Roger Mendes

Roger Mendes

14/04/2015

Não ficou claro, o sobre estar dentro do managedBen ou Dentro do Controller eu sei que depende um do outro, eu trabalhva com jsf 1.2 e este escopo não estava disponível veio com o jsf 2.0, e sempre usei @Controller e para injetar uso o @Resource, procure na internet e vi uma dica para pegar o usuario da Sessão, este eu entendi, porém vejo que a maioria dos exemplos de projeto feito na internet esta usando o @ManagedProperty para injetar os dados no Dao e salvar no banco, por isso que não entendi, pq não usar o spring e estão usando o jsf.
GOSTEI 0
Roger Mendes

Roger Mendes

14/04/2015

alguém para ajudar nesta minha dúvida ?
GOSTEI 0
João Cabral

João Cabral

14/04/2015

Isso vai depender da estratégia e da arquitetura da sua aplicação.

Você pode utilizar a anotação @ManagedBean e não usar nenhuma injeção automática de dependências, apenas o JSF.
Um exemplo: http://jamacedo.com/2010/06/crud-jsf-2-0-hibernate-exemplo-gerenciando-livros-2/

Você pode utilizar o Spring para injeção de dependências usando @Controller e @Autowired como aqui:
http://imasters.com.br/linguagens/java/serie-spring-jeecrud-hibernate-com-spring-3-jsf-2-0/

Você pode utilizar o CDI do Weld com @Named e @Inject como aqui:
https://github.com/yaw/cdi-jsf-crud

Existem várias opções para você utilizar. São várias formas de fazer a mesma coisa.

O que recomendo é você conhecê-las para poder decidir qual será melhor para determinado projeto e qual se adequará mais ao seu gosto.
GOSTEI 0
POSTAR