EJB Programming Model and POJO Programming Model

Enterprise Java Bean (EJB)

Enterprise Java Bean (EJB) was the Java EE way for creatng enterprise applications without worrying about middleware requirements such as transaction management, persistence, security, distribution, remoting etc. 

The older EJB programming model however had many problems and POJO programming model emerged as an alternative means to solve those problems. 


Problems with the older EJB Model

Some of the problems with older EJB model were:

  1. The EJB 2.x specification required developers to use interfaces from the EJB framework package, which created tight coupling with EJB framework package.

  2. You were also required to implement several callback methods, even if you don’t need them, such as ejbCreate, ejbPassivate and ejbActivate.

  3. You had to understand the complex EJP programming model involving concepts such as local interface, remote interface etc.

  4. You need an EJB container to execute EJBs. EJB container is part of application servers such as JBoss, Websphere, Weblogic etc., but is not part of lighter web containers like Apache Tomcat. 

  5. Due to the requirement of an EJB container, it is difficult to unit test EJB components such as session and entity beans outside a container.


POJO Programming Model

POJO stands for Plain Old Java Objects, and denotes regular Java classes that are not tied up to any interface.


POJO programming model benefits over EJBs

  1. POJO classes did not have any dependency on any API or a specialized EJB container, like EJBs, and hence was easy to develop, test and deploy.

  2. You were also not required to implement unnecessary callback methods.

  3. POJO programming is more object-oriented, as POJO classes usually encapsulate behavior and properties; older EJB programming model was more procedural.

JavaJee Checks: 
Plagiarism Check last done on 4/June/2015.

Search the Web

Custom Search

Searches whole web. Use the search in the right sidebar to search only within javajee.com!!!

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) ArrayLists (1) Arrays (2) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (52) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (4) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (7) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (8) Javascript Frameworks (1) Java SE Professional (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) resources (1) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)