Enterprise JavaBeans
この ký sự はKiểm chứng khả năngなTham khảo văn hiến や xuất điểnが toàn く kỳ されていないか, bất thập phân です.(2021 niên 6 nguyệt) |
Enterprise JavaBeans(EJB) とは,JavaBeansSĩ dạng と đồng dạng のものを,ネットワーク phân tán hìnhビジネスアプリケーションのサーバサイドで thật hiện したSĩ dạngのこと.セキュリティCơ năng などを bị える.サン・マイクロシステムズ( サン ) がJava EE ( hiện ・Jakarta EE) sĩ dạng の trung でビジネスロジックをモデル hóa およびデータのVĩnh 続 hóaのために tác thành した.データベースやアプリケーションサーバなどで thật trang されている.
Lịch sử
[Biên tập]EJBは nguyên 々,OMGのCORBAやサンのRMIといった phân tán オブジェクトに do lai する kỹ thuật であり, RMIをベースにビジネスロジックを thật trang するコンポーネントとして đản sinh した. Tối sơ の thật trang はJavaの đản sinh から3 niên hậu の1998 niênKhoảnh に đăng tràng している. こうした kinh vĩ から, đương sơ sách định されたEJBはリモートアクセスを tưởng định した phục tạp な thật trang が tất tu となっており, デプロイメント ký thuật tử と hô ばれるXMLの thiết định ファイルもかかせないものだった. また, EJB 1.0では chủ yếu な yếu tố としてセッションBeanのみが định nghĩa されており, エンティティBeanはオプションという tráp いであった.2003 niênのJ2EE 1.4で định nghĩa されたEJB 2.0では, EJBが phân tán オブジェクトとして sử われることは hi であるという thật tình を đạp まえ, ローカルインタフェースの truy gia が hành われている. またメッセージ駆 động hình Beanが sĩ dạng に tổ み込まれた.[1]
しかしEJBの sĩ dạng は y nhiên phục tạp なものであり, EJBに đại わってより khinh lượng なSpring FrameworkやPOJOといった khảo え phương を dụng いる động きが hoạt phát hóa する. こうした lưu れを thụ け,2007 niênのJava EE 5で định nghĩa されたEJB 3.0では,DIやPOJOといった khảo え phương を thủ り nhập れる hình で sĩ dạng の toàn diện đích な kiến trực しが hành われる. EJBの các クラスは単なるPOJOとなり, J2SE 5.0で đạo nhập されたアノテーションによりEJBとしての tuyên ngôn を hành う hình thức とされた. Thiết định ファイルも bất yếu となり, エンティティBeanは độc lập した vĩnh 続 hóa フレームワークであるJava Persistence APIに trí き hoán えられた.[1]
その hậu も cải lương は続けられており,2009 niênのJava EE 6で định nghĩa されたEJB 3.1では, シングルトンセッションBeanの truy gia や, セッションBeanを trung tâm とするコンポーネントのみを trừu xuất したEJB Liteと hô ばれるサブセットの định nghĩa が hành われており[2],2013 niênのJava EE 7で định nghĩa されたEJB 3.2では, phi đồng kỳ 処 lý のEJB Liteへの đạo nhập や bất yếu となったエンティティBeanが sĩ dạng から thủ り trừ かれるなどしている[3].
EJBの chủng loại
[Biên tập]EJBは, đại きく dĩ hạ の tam つの chủng loại のBeansに phân けられる.
- セッションBean (Session Bean)
- セッションを bảo trì し, nhất thời đích なロジックを bảo tồn するオブジェクト.Dĩ hạ のような chủng loại がある.
- メッセージ駆 động hình Bean (Message Driven Bean)
- Phi đồng kỳ 処 lý の ký thuật など.
- エンティティBean (Entity Bean)
- Vĩnh 続 đích なデータを bảo tồn するオブジェクト. EJB 3.2で廃 chỉ.
Lệ
[Biên tập]EJBの giản 単な lệ を dĩ hạ に kỳ す.
@Stateless
publicclassCustomerService{
@PersistenceContext
privateEntityManagerentityManager;
publicvoidaddCustomer(Customercustomer){
entityManager.persist(customer);
}
}
Thượng ký のコードは,O/Rマッピングを sử dụng して cố khách (Customer) オブジェクトをVĩnh 続 hóa(DBに bảo tồn ) するサービスクラス ( セッションBean ) である. EJBが vĩnh 続コンテキスト (Persistence context) の quản lý を hành うため, thật tế にデータを đăng lục するaddCustomer()メソッドは,デフォルトでトランザクションQuản lý されたスレッドセーフなメソッドとなる. Thượng ký のコードは, EJBのビジネスロジックと vĩnh 続 hóa に tiêu điểm を đương てたもので, EJBの đặc trưng đích な cơ năng の sổ 々は sử dụng していない.
こうしたEJBのセッションBeanは, dĩ hạ のように tha のクラスから hô び xuất して sử dụng することができる. Dĩ hạ はWeb tằng からの hô び xuất し lệ である.
@Named
@RequestScoped
publicclassCustomerBacking{
@EJB
privateCustomerServicecustomerService;
publicStringaddCustomer(Customercustomer){
customerService.addCustomer(customer);
context.addMessage(...);// ( tỉnh lược ) メッセージ xuất lực など
return"customer_overview";
}
}
Thượng ký のコードは, EJBのセッションBeanを@EJBアノテーションによりChú nhậpした,JavaServer Faces(JSF) の quản lý Bean (Managed Bean) である. Kim độ のaddCustomer()メソッドは,UIコンポーネントにおけるボタン thao tác などを biểu hiện している. EJBのセッションBeanとは nghịch に, この quản lý Beanにはビジネスロジックに quan するコードも vĩnh 続 hóa に quan するコードも hàm まれていないが, EJBのコードを hô び xuất すことでそうした処 lý を thật hiện している. EJBはプレゼンテーション tằng に y tồn せず, それらの dịch cát は quản lý Beanが đam う.
EJBコンテナ
[Biên tập]EJBを quản lý し, động tác させるための thật hành hoàn cảnh はEJBコンテナと hô ばれる. EJBコンポーネントが động tác するときに lợi dụng するデータベースへのコネクションやトランザクションの quản lý も đồng thời に hành う.
EJBコンテナの đại biểu lệ としてJBossなどが cử げられる. またJavaEEサーバーはEJBコンテナを hàm んでいる.
Cước chú
[Biên tập]- ^ab“Đệ 1 hồi EJBのすべてを tri る”.EJB 3を tái khảo する.Think IT (2007 niên 9 nguyệt 12 nhật ).2014 niên 2 nguyệt 19 nhậtDuyệt lãm.
- ^ab“Java EE6:EJB3.1は, すばらしい tiến hóa だ”.infoQ (2010 niên 2 nguyệt 25 nhật ).2014 niên 2 nguyệt 19 nhậtDuyệt lãm.
- ^“What's new in EJB 3.2? - Java EE 7 chugging along!”( anh ngữ ). Oracle (2012 niên 11 nguyệt 26 nhật ).2014 niên 2 nguyệt 19 nhậtDuyệt lãm.