Makers of databases, component servers, IDEs all support it. A rich set of Enterprise APIs like EJB, JDBC, JTS Java is also leading the way by defining several important standards that enable the rapid development of enterprise applications. There is some confusion as to what is the difference between Java Beans and Enterprise Java Beans. According to Sun, a bean is a self-contained, resusable software unit that can be visually composed into composite components, applets or applications using visual development tools. The beans can then be thrown on a canvas, have their properties edited and deployed.
Beans also support event handling.
Bean A may register with Bean B, indicating its interest when a certain property is changed in B. Bean B takes on the task of notifying Bean A when this property changes, at which time Bean A will take some appropriate action. A good example is a Time Bean, which keeps track of the current time as a property. Now every second the Time bean will fire a property change to the other bean, which may do some useful work with that information. An EJB compliant server offers these capabilities to components that are deployed inside it. The components themselves may get some of these abilities by default and they may have to do certain things to obtain others.