O termo managed bean não foi um termo apropriado escolhido pelos propositores do JSF, porque qualquer bean pode ter seu estado managed por qualquer contêiner, seja spring, CDI, inclusive JSF. Logo, qualquer bean gerenciado pelo container é um managed bean.
Acho que entendo onde a sua dúvida está apertando, pois sempre aparece uma mensagem privada para mim perguntando alguma coisa sobre esses famigerados JSF managed bean.
O que você precisa ter em mente, num primeiro lugar, é que um managed bean é um bean gerenciado pelo contêiner, nesta caso, um contêiner JSF, que é muito modesto em relação a outros contêineres do mercado.
Em segundo lugar, um managed bean gerenciado pelo JSF pode exercer diferentes papéis em sua aplicação, entre eles:
-
Managed-bean de modelo: o nome já é explicativo;
-
Backing Managed-Bean: geralmente relação 1:1 com a view, mas é uma definição controversa, pois há desenvolvedores que chamam de backing bean os componentes que estão em “binding” com algum objeto da view. Geralmente possui apenas actionListeners e componentes que representam UI de uma página (view);
-
Managed-Bean de Controle: geralmente executa alguma lógica e retorna a navegação. Apenas métodos “action” e não “actionListeners”;
-
Managed-bean de suporte: dá suporte para algum UI na tela do usuário, por exemplo, com os dados de uma combobox;
-
Managed-bean utilitário: algum bean usado por várias aplicações.
O que aparece muita vezes, é um managed bean JSF exercendo mais de um papel, ou seja, tudo vai depender de como o desenvolvedor quer enxergar/organizar sua aplicação.
Eu já abandonei JSF managed bean há muito tempo (e foi uma decisão arriscada) em favor de CDI managed beans, que são muito superiores.