A Java Bean (not to be confused with an Enterprise Java Bean -- completely different beast) is simply a class that has a default (no-argument) constructor, can be serialized, and exposes its member variable through getters and setters.
Piscis Babelis est parvus, flavus, et hiridicus, et est probabiliter insolitissima raritas in toto mundo.
Joe Tseng
Greenhorn
Joined: Nov 09, 2004
Posts: 23
posted
0
I was asked this question before but I couldn't give a straight answer. I think this thread is the right place to ask... So what IS the difference between a JavaBean and EJB?
Couldn't you have some of the the same characteristics of a bean be put into an EJB? Say I want to write a stateless session EJB; couldn't I create methods to implement business logic in either type of bean? (I'm ignoring the remote and home interfaces for now and focusing on just the beans.) [ January 28, 2005: Message edited by: Joe Tseng ]
Steven Bell
Ranch Hand
Joined: Dec 29, 2004
Posts: 1071
posted
0
Any Java Object can be a 'bean'. The term carries vary little requirments and is minimally invasive. You must have a no-args constructor, and getters and setters for your 'properties'. That's it.
that is a 'bean'. Nice and easy.
An EJB is a monstrous beast that must be hunted down and drug through the street while we all poke it with pitchforks and ...
oh, sorry about that.
Joe Tseng
Greenhorn
Joined: Nov 09, 2004
Posts: 23
posted
0
So from your comment, my impression is that an EJB can be a JavaBean with alot more crap piled on top of it (remote/home/local-home interfaces) that have certain aspects of its behavior and interaction controlled by the J2EE container/server, right?
Steven Bell
Ranch Hand
Joined: Dec 29, 2004
Posts: 1071
posted
0
Yes. But I would like to put some quote from the book Better, Faster, Lighter Java.
It has a table with serveral 'golden hammers' and where they can be properly used. Part of the table is:
EJB entities
Suitable for > Nothing
Not suited for > Sane applications
EJB(stateless session beans, MDB)
Suitable for > Distributed, transactional facades Secure, distributed transaction monitor
Not suitable for > Lightweight applications Applications where transactions are limited to one database
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.