Ao adicionar a annotation @ManagedBean, dois imports são exibidos pelo eclipse: "import javax.faces.bean.ManagedBean;" e "import javax.annotation.ManagedBean". Qual a diferença entre eles?
Ao adicionar a annotation @ManagedBean, dois imports são exibidos pelo eclipse: "import javax.faces.bean.ManagedBean;" e "import javax.annotation.ManagedBean". Qual a diferença entre eles?
Oi Felipe, tudo bem?
Quando importamos de import javax.annotation.ManagedBean
, queremos usar a implementação do servidor de aplicação, como glassfish por exemplo.
Quando usando a outra, queremos utilizar o managedbean da própria lib.
A galera prefere usar o do servidor, pois futuramente eles fazem integração com o CDI, que facilita bastante a vida.
javax.annotation.ManagedBean são os beans que tem o seu ciclo de vida gerenciado pelo JSF e seu uso está restrito ao JSF, já os beans javax.annotation.ManagedBean são beans gerenciados via CDI, um contexto bem maior que o JSF, beans CDI podem ser usados com quase qualquer coisa junto com JavaEE, vc pode ter beans CDI trabalhando com JSF ou VRaptor por exemplo, com os beans JSF seu uso é restrito ao JSF. Use beans CDI, os beans JSF vão ser deprecated na JEE 8 e nunca misture beans cdi com beans jsf: http://blog.triadworks.com.br/nao-misture-anotacoes-do-jsf-com-anotacoes-do-cdi
desculpa, javax.faces.bean.ManagedBean são os beans do JSF