The ease of changing a Java object into a bean makes the JavaBeans component specification look deceptively simple. Although you can create beans by simply creating Java objects with private data fields accessed through special public accessor methods, a bean must support all five of the following features:
Properties or private data fields
Events or the ability of the bean to send event notifications of internal property changes to other beans, applications, or scripting languages
Introspection or the ability of objects, external to a bean, to analyze how the bean works
Customization or the ability of objects, external to a bean, to customize the appearance or behavior of the bean
Persistence or mechanisms that result in saving ...