Non sono sicuro della differenza. Uso Hibernate e, in alcuni libri, usano JavaBean e POJO come termine intercambiabile. Voglio sapere se c'è una differenza, non solo nel contesto di Hibernate, ma come concetti generali.Qual è la differenza tra un JavaBean e un POJO?
risposta
Un JavaBean segue alcune convenzioni. Denominazione Getter/setter, con un costruttore di default pubblico, serializzabile ecc. Vedere JavaBeans Conventions per ulteriori dettagli.
Un POJO (plain-old-Java-object) non è definito in modo rigoroso. È un oggetto Java che non ha l'obbligo di implementare una particolare interfaccia o derivare da una particolare classe base, o fare uso di particolari annotazioni per essere compatibile con un dato framework, e può essere qualsiasi arbitrario (spesso relativamente semplice) Oggetto Java
Tutti i JavaBeans sono POJO ma non tutti i POJO sono JavaBeans.
Un JavaBean è un oggetto Java che risponde ad alcune convenzioni di programmazione:
- classe JavaBean deve implementare sia Serializable o Externalizable;
- la classe JavaBean deve avere un costruttore no-arg pubblico;
- tutte le proprietà JavaBean devono disporre di metodi di setter pubblico e getter (a seconda dei casi);
- tutte le variabili di istanza JavaBean devono essere private.
Secondo Martin Fowler un POJO è un oggetto che incapsula Business Logic mentre una Bean (fatta eccezione per la definizione già detto in altre risposte) è poco più di un contenitore per contenere i dati e le operazioni disponibili per l'oggetto semplicemente imposta e ottieni dati.
Il termine fu coniato, mentre Rebecca Parsons, Josh MacKenzie ed io stavamo preparando per un discorso ad una conferenza nel settembre 2000. Nel discorso che stati sottolineando i numerosi vantaggi della logica di business di codificazione nel java regolare oggetti piuttosto che usare Entity Beans. Ci siamo chiesti perché le persone di erano così contrarie all'uso di oggetti regolari nei loro sistemi e concludeva che ciò era dovuto al fatto che agli oggetti semplici mancava un nome di fantasia. Quindi, ne abbiamo dato uno, ed è catturato molto bene.
POJOS
ad alcune convenzioni (getter/setter, costruttore pubblico no-arg, variabili private) e sono in azione (es. Viene utilizzato per la lettura dei dati dal modulo) sono JAVABEANS
.
POJO: Se la classe può essere eseguito con sottostante JDK, senza altre librerie di terze parti esterne supportano quindi il suo chiamati POJO
JavaBean: Se la classe contiene solo attributi con funzioni di accesso (setter e getter) quelli sono chiamati JavaBean I bean Java in genere non contengono alcuna logica di bussiness, piuttosto che vengono utilizzati per contenere alcuni dati in essa contenuti.
Tutti Javabeans sono POJO POJO ma tutti non sono Javabeans
Pojo - Plain Old Java oggetto
classe POJO è una classe ordinaria senza alcuna specialità, classe totalmente debolmente accoppiati dalla tecnologia/framework.the classe non implementa dalla tecnologia/quadro e non si estende dalla tecnologia/api quadro che classe si chiama classe POJO.
classe POJO può implementa le interfacce ed estendere le classi, ma la classe o l'interfaccia super-non dovrebbe essere una tecnologia/quadro.
Esempi:
1.
class ABC{
----
}
classe ABC non danno esecuzione o che si estendono dalla tecnologia/quadro che è il motivo per cui questo è di classe POJO.
2.
class ABC extends HttpServlet{
---
}
classe ABC che si estende da api tecnologia servlet che è il motivo per cui questo non è una classe POJO.
3.
class ABC implements java.rmi.Remote{
----
}
classe ABC implementa via api rmi Ecco perché questa non è una classe POJO.
4.
class ABC implements java.io.Serializable{
---
}
questa interfaccia è parte del linguaggio Java non è una parte della tecnologia/framework.so questo è di classe POJO.
5.
class ABC extends Thread{
--
}
qui filo è anche classe di linguaggio Java quindi questo è anche una classe POJO.
6.
class ABC extends Test{
--
}
se la classe di test si estende o attrezzi da tecnologie/quadro, allora ABC non è anche una classe POJO perché eredita le proprietà della classe Test. se la classe di prova non è una classe POJO allora classe ABC, inoltre, non una classe POJO.
7.
ora questo punto è un caso eccezionale
@Entity
class ABC{
--
}
@Entity
è un'annotazione data dal api sospensione o API JPA, ma ancora possiamo chiamare questa classe come classe POJO. classe con annotazioni riportate dalla tecnologia/quadro si chiama classe POJO da questo caso eccezionale.
- 1. Differenza tra modello, javabean e POJO
- 2. Qual è la differenza tra JavaBean e ManagedBean
- 3. Qual è la differenza tra un array e un oggetto?
- 4. Qual è la differenza tra un helper e un parziale?
- 5. Qual è la differenza tra un dizionario e un array?
- 6. Qual è la differenza tra un RoutedCommand e un RoutedUICommand?
- 7. Qual è la differenza tra un vettore e un vertice?
- 8. Qual è la differenza tra un algoritmo e un metodo
- 9. Qual è la differenza tra un "nonce" e un "GUID"?
- 10. Qual è la differenza tra un pacchetto e un intento?
- 11. Qual è la differenza tra un modello e un percorso?
- 12. Qual è la differenza tra un tema e un modello?
- 13. Qual è la differenza tra un controller e un servizio?
- 14. Qual è la differenza tra un REPL e un interprete?
- 15. Qual è la differenza tra un nodo e un vertice?
- 16. Qual è la differenza tra Invocare e BeginInvocare un MessageBox?
- 17. Qual è la differenza tra% e %% in un file cmd?
- 18. Qual è la differenza tra una discussione e un gestore
- 19. Qual è la differenza tra una chiave e un KeySpec?
- 20. Qual è la differenza tra una chiusura e un modulo?
- 21. Qual è la differenza tra il panico e un assert?
- 22. Qual è la differenza tra un algoritmo e una funzione?
- 23. Qual è la differenza tra un Hashtable e le Proprietà?
- 24. qual è la differenza tra uno streamwriter e un binarywriter?
- 25. Qual è la differenza tra. e # in un file css?
- 26. Qual è la differenza tra un riferimento __weak e __block?
- 27. Qual è la differenza tra un pacchetto dll e nuget?
- 28. Qual è la differenza tra un reindirizzamento 302 e 307?
- 29. Qual è la differenza tra nohup e un demone?
- 30. qual è la differenza tra @ e @@ in un modulo?
Si noti che un JavaBean può essere e di solito è un POJO e molti sono in realtà POJO JavaBeans. –
No, per la definizione di un POJO Bean Java * non * è un POJO perché per essere considerato un Java Bean una classe deve seguire determinate convenzioni di codifica (per esempioavere un costruttore no-arg, avere metodi che iniziano con le parole "get" e/o "set") o essere distribuiti con una classe BeanInfo. – Nat
Poiché si tratta di * convenzioni *, penso che si possa affermare con successo che un bean può essere un POJO (ad esempio non si eredita da un'interfaccia JavaBean o simile) –