blob: 61e580d9f793e1aab84df2810d8f57c550d493e5 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--Arbortext, Inc., 1988-2006, v.4002-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN"
"concept.dtd">
<concept id="cejb3" xml:lang="en-us">
<title>Plain old <tm tmclass="special" tmowner="Sun Microsystems, Inc." tmtype="tm"
trademark="Java">Java</tm> objects</title>
<titlealts>
<navtitle>POJOs (Plain old Java objects)</navtitle>
<searchtitle>Plain old Java objects (POJOs) in Java EE 5 EJB 3.0 applications</searchtitle>
</titlealts>
<shortdesc>Although POJOs existed before, they play a more important role
in the programming methodology of <tm tmclass="special" tmowner="Sun Microsystems, Inc."
tmtype="tm" trademark="Java">Java</tm> EE 5. Now, you can now create EJB applications
with persistence capabilities by using enterprise beans and entities created
from POJOs.</shortdesc>
<prolog><metadata>
<keywords><indexterm>Enterprise JavaBeans 3.0</indexterm></keywords>
</metadata></prolog>
<conbody>
<p>The complexity of the <tm tmclass="special" tmowner="Sun Microsystems, Inc."
tmtype="tm" trademark="Java">Java</tm> 2 Enterprise Edition framework used
to present a major hurdle for adoption previously. The <tm tmclass="special"
tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> EE
5 specification sought a simpler development experience by making POJOs the
basis of its design paradigm. The POJO programming model enables you to unit
test outside of the application server, making the whole programming experience
smoother.</p>
<example><title>A simple POJO</title><p>The following code is an example of
a simple POJO. Note that there are no references to any interfaces. To use
this POJO as the basis for an EJB 2.1 application requires additional framework
classes to support it and the class itself would have to implement additional
interfaces.</p><codeblock>public class Test {
String name;
/**
* This is a constructor for a Test Object.
**/
public Test(){
name = "Jane";
}
}</codeblock><p>To create an EJB 3.0 bean, inject a component defining annotation
at the class level. The following example turns a POJO into a stateless session
bean by adding the @Stateless annotation.</p><codeblock>@Stateless
String class Test {
String name;
/**
* This is a constructor for a Test Object.
**/
public Test () {
name = "jane";
}
}</codeblock></example>
<example>In a real application, the POJO needs additional business logic.
The fundamental idea of using POJOs in the context of the <tm tmclass="special"
tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> EE
specification is to associate Metadata about your component to be associated
directly in your POJO. This approach reduces the number of artifacts you need
to deal with and makes it easier to ensure the integrity of your Metadata.</example>
<example>The new POJO-based programming model also shifts your concentration
to working on your <tm tmclass="special" tmowner="Sun Microsystems, Inc."
tmtype="tm" trademark="Java">Java</tm> EE 5 components in your <tm tmclass="special"
tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> editor
as opposed to writing business logic in XML. By working with this application
development software, you can take advantage of features that can even further
simplify the process of developing <tm tmclass="special" tmowner="Sun Microsystems, Inc."
tmtype="tm" trademark="Java">Java</tm> EE 5 applications (such as as-you-type
validation, content assist, and refactoring). </example>
</conbody>
</concept>