Beans

POJO(Plain Old Java Object)

很單純的只有

  1. private屬性
  2. getter setter
  3. 不繼承不implement介面也不包含@annotation

不過實際上專案常使用的是 POJO-compliant
也就是容許包含@annotation

JavaBeans

也是一種POJO
不過多了

  1. serializable
  2. 無參數的constructor

–> 能夠讓framework實體化,
也因此AOP可以增加cross-cutting concern像是persistence, transactions, security…

所以像Spring就可以注入物件,單純透過XML的設定,而BEAN就能夠維持Pure的POJO,
不過有些人會覺得XML難以維護且冗餘,因此像新版的Spring也提供了@annotation,不過這樣就會汙染了Pure的POJO。

使用 XM L注入或是 @annotation 注入都有人擁護,就看各專案的需求囉!


附註:

EJB:
Java EE中的概念,其實就是一般class,
其實就是包含業務邏輯的JavaBeans,

比方說Spring,前端會透過API打進來,Spring會有一層Controller接收打進來的參數,PARSE過後在丟到不同的邏輯層去做處理,而這邊的邏輯層就可以稱做EJB

JPA

Reference

https://stackoverflow.com/a/1612671
https://en.wikipedia.org/wiki/Plain_old_Java_object
https://blog.csdn.net/qq_19865749/article/details/75648083