1、本例的源代码是sun对JSF的实现:Mojarra2.1.7(SNAPSHOT20120206)。
2、ManagedBean的初始化是由com.sun.faces.config.processor.ManagedBeanConfigProcessor的process方法完成。
3、ManagedBeanConfigProcessor调用了com.sun.faces.mgbean.BeanManager的register(ManagedBeanInfobeanInfo)方法来注册ManagedBean,手动注册ManagedBean需要new一个com.sun.faces.mgbean.ManagedBeanInfo对象。
4、如何得到BeanManager的实例?如下:
FacesContextcontext=FacesContext.getCurrentInstance();
ExternalContextec=context.getExternalContext();
ServletContextsc=(ServletContext)ec.getContext();
BeanManagerbeanManager=
ApplicationAssociate.getInstance(sc).getBeanManager();
5、ManagedBean的一些相关属性也是可以一并注册的,属性的信息要放在ManagedBeanInfo对象中,具体请参看ManagedBeanInfo源代码和ManagedBeanConfigProcessor源代码。