Java Beans vs Enterprise Java Beans
Java Bean
Java Bean encapsulate many objects into one (bean), so that they can be passed around as a single bean object instead of as multiple individual objects.
Java Beans are classes that are serialazable, have a zero-arg constructor, and allow access to properties using getter and setter methods.
Enterprise Bean
As mentioned on Oracle Docs, an Enterprise Bean is a server-side component that encapsulates the business logic of an application.
Business logic is the code that fulfills purpose of the application. In an inventory control application, for example, enterprise beans might implement the business logic in methods called checkInventoryLevel and orderProduct. By invoking these methods, clients can access the inventory services provided by the application.
Benefits of Enterprise Beans
For several reasons, enterprise beans simplify the development of large, distributed applications.
First, because the EJB container provides system-level services to enterprise beans, bean developers can concentrate on solving business problems. EJB container, rather than the bean developer, is responsible for system-level services such as transaction management and security authorization.
Second, because beans rather than the clients, contain application’s business logic, the client developer can focus on presentation of the client. Client developer does not have to code the routines that implement business rules or access databases. As a result, clients are thinner, a benefit that is particularly important for clients that run on small devices.
Third, because enterprise beans are portable components, application assembler can build new applications from existing beans. These applications can run on any compliant Java EE server provided that they use the standard APIs.
When to Use Enterprise Beans
You should consider using enterprise beans if your application has any of the following requirements:
The application must be scalable. To accommodate a growing number of users, you may need to distribute an application’s components across multiple machines. Not only can the enterprise beans of an application run on different machines, but also their location will remain transparent to the clients.
Transactions must ensure data integrity. Enterprise beans support transactions, the mechanisms that manage concurrent access of shared objects.
The application will have a variety of clients. With only a few lines of code, remote clients can easily locate enterprise beans. These clients can be thin, various, and numerous.
Types of Enterprise Beans
- Session : Performs a task for a client; optionally may implement a web service
- Message-Driven - Acts as a listener for a particular messaging type, such as the Java Message Service API
Note that Entity beans have been replaced by Java Persistence API entities.