Difference between managed bean and backing bean

Changing my initial answer – there is no meaningful difference between the two. The tutorial says that backing beans are later declared as managed beans. So, to summarize:

  • a backing bean is the class out of context
  • a managed bean is the backing bean whenever it is declared to be used with the JSF managed bean facility.

I’ve never actually used the term “backing bean”, because I found no use to it. So you might be better off using only “managed bean”. Note that in JSF 2.0 (and in CDI) you have @ManagedBean– so your bean is a managed bean.

BalusC suggested that “backing bean” is the definition, and “managed bean” is the instance. While this might have been the original idea of JSF creators, I don’t think it is worth supporting it. CDI and spring for example don’t have different term for “bean definition” and “bean instance”.

The JSF 2.0 specification mentions the term “backing bean” only a few times, with no definition whatsoever. In addition to that it mentions “backing bean class”, which might mean that “backing bean” != “backing bean class”, which brings further confusion.

So to conclude – for me both are interchangeable, and I’d stick to only using “managed bean”

Leave a Comment