35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: POJO | ||
|  | --- | ||
|  | ## POJO
 | ||
|  | POJO stands for "Plain Old Java Object". This is different from Plain Old _Javascript_ Objects. | ||
|  | A Plain Old Java Object refers to the Object Oriented Programming (OOP) paradigm that is used in the Java programming language. The [OOP model](https://en.wikipedia.org/wiki/Object-oriented_programming) treats data as 'objects'. Each 'object' is an instance of a 'Class', which represents the archetype or template from which all objects inherit their properties and attributes.  | ||
|  | 
 | ||
|  | A POJO is therefore simply a Java Object.  However, it must also satisfy the following additional criteria: | ||
|  | 1. it must not extend prespecified Java Classes; | ||
|  | 
 | ||
|  | ```java | ||
|  | public class Foo extends javax.servlet.http.HttpServlet {  | ||
|  | ...// body ...  | ||
|  | } | ||
|  | ``` | ||
|  | 2. it must not implement prespecified Interfaces; | ||
|  | 
 | ||
|  | ```java | ||
|  | public class Bar implements javax.ejb.EntityBean {  | ||
|  |   ...  // body | ||
|  | }   | ||
|  | ``` | ||
|  | 3. it must not contain prespecified Annotations. | ||
|  | ```java | ||
|  | @javax.persistence.Entity public class Baz {  | ||
|  |   ... // body ... | ||
|  | }   | ||
|  | ``` | ||
|  | 
 | ||
|  | Therefore a Java Object qualifies as a POJO only when it is free from the above modifications. It therefore follows that a POJO is not 'bound by any restrictions' other those prescribed by the formal Java language specification. | ||
|  | 
 | ||
|  | 
 | ||
|  | #### More Information:
 | ||
|  | [Wikipedia - POJOs](https://en.wikipedia.org/wiki/Plain_old_Java_object) |