EJB2 vs EJB3
EJB (Enterprise JavaBeans) yog Java API (Application Programming Interface) pom nyob rau hauv Java EE (Java Platform, Enterprise Edition) specification. EJB piav qhia txog cov qauv kev tsim vaj tsev rau kev tsim cov ntawv thov kev lag luam. Qhov no yog tus qauv tswj server-sab qauv uas muaj peev xwm ntes cov kev lag luam logic ntawm daim ntawv thov kev lag luam. IBM yog EJB tus thawj tsim uas tsim nws hauv 1997. Sun Microsystems tau txais nws xyoo 1999.
Ua ntej qhov kev taw qhia ntawm EJB, nws tau pom tias cov kev daws teeb meem pom muaj nyob hauv cov lej lag luam rov qab tau nquag rov ua dua los ntawm cov programmers. Raws li qhov tshwm sim, EJB tau qhia los daws cov teeb meem no xws li kev pheej hmoo, kev ncaj ncees thiab kev nyab xeeb. EJB muab cov txheej txheem los daws cov teeb meem nram qab no, los ntawm kev qhia meej tias yuav ua li cas daim ntawv thov neeg rau zaub mov yuav tsum ua cov kev lag luam, koom nrog JPA (Java Persistence API) cov kev pabcuam, tswj kev tswj hwm, tswj JMS (Java Message Service) Txheej xwm, daws teeb meem naming nrog JNDI (Java Naming thiab Directory Interface), tsim cov kev pabcuam ruaj ntseg nrog JCE (Java Cryptography Extension) thiab JAAS (Java Authentication thiab Tso Cai Pabcuam), xa cov khoom sib txuas, sib txuas lus nrog RMI-IIOP (Java Remote Method Invocation interface hla Internet Inter-Orb Protocol), tsim cov kev pabcuam hauv lub vev xaib, thov cov txheej txheem asynchronous thiab siv qhov kev pabcuam Timer.
EJB2
EJB2 (EJB 2.0) tau tshaj tawm thaum Lub Yim Hli 22, 2001. Nws piav qhia txog kev tsim cov khoom siv uas qhia txog cov khoom siv hauv Java los ntawm kev sib txuas cov cuab yeej tsim los ntawm cov neeg muag khoom sib txawv. Ib lub hom phiaj tseem ceeb ntawm EJB2 yog tso cai rau cov neeg tsim khoom tsim cov ntawv thov kev lag luam yooj yim dua yam tsis tas yuav nkag siab cov ntsiab lus qis, xws li ntau txoj xov thiab kev sib txuas sib txuas. Lwm lub hom phiaj yog tso cai rau cov programmer sau "Bean" ib zaug thiab khiav txhua qhov chaw yam tsis muaj kev rov ua dua (ua raws li "sau ib zaug, khiav txhua qhov chaw" cov lus hais ntawm Java programming lus). Tsis tas li ntawd, EJB2 npaj los tso cai rau cov khoom tsim los ntawm cov neeg muag khoom sib txawv kom yooj yim sib cuam tshuam, thiab tso cai rau cov neeg muag khoom sau ntawv txuas ntxiv rau lawv cov khoom uas tuaj yeem txhawb EJBs.
EJB3
EJB3 (EJB 3.0) tau tso tawm rau 11 Tsib Hlis, 2006. EJB3 ua rau cov neeg siv lub neej yooj yim heev los ntawm kev tso cai rau lawv siv cov lus piav qhia los ntawm kev xa cov lus piav qhia uas tau siv hauv cov ntawv dhau los. EJB3 muaj cov lag luam sib cuam tshuam thiab ib qho chaw taum tshwj xeeb uas tuaj yeem siv qhov kev lag luam sib cuam tshuam, tshem tawm qhov xav tau siv tsev / chaw taws teeb interfaces thiab cov ntaub ntawv ejb-jar.xml. Zuag qhia tag nrho kev ua tau zoo ntawm EJB3 yog kev txhim kho ntau dua piv rau EJB2, thiab muaj qhov nce ntxiv hauv kev teeb tsa, hloov tau yooj yim thiab txav tau yooj yim hauv qhov kev tso tawm EJB no.
Qhov txawv ntawm EJB2 thiab EJB3 yog dab tsi?
EJB3 muaj kev txhim kho pom zoo hauv kev teeb tsa thiab kev ua haujlwm dhau EJB2. Ib qho laj thawj rau kev txhim kho kev ua tau zoo no yog kev siv POJO (Plain Old Java Object) nrog metadata thiab XML Deployment Descriptors los ntawm EJB3 es tsis txhob ntawm JNDI lookups siv hauv EJB2 rau cov khoom siv. Kev teeb tsa ntawm EJB3 yog qhov yooj yim dua vim tias tus programmer tsis tas yuav siv lub Tsev / Chaw Taws Teeb interfaces thiab lwm yam (xws li SessionBean), uas tshem tawm qhov xav tau siv cov thawv hu rov qab (xws li ejbActivate thiab ejbStore).
Tsis tas li ntawd, EJB3 zoo dua EJB2 hauv thaj chaw ntawm kev hloov pauv thiab kev txav mus los. Piv txwv li, nws yog ib qho yooj yim los hloov EJB3 qhov chaw rau DAO (Cov Ntaub Ntawv Access Object) thiab vice versa vim EJB3 cov chaw yog lub teeb yuag (raws li opposed to cov heavyweight EJB2 cov koom haum, uas siv los hais saum toj no interfaces). Cov lus nug ntawm cov ntaub ntawv sau hauv EJB3 yog qhov hloov tau yooj yim vim tias nws siv EJB-QL ua kom zoo, nyob rau hauv qhov chaw qub ntawm EJB-QL, uas muaj ntau qhov kev txwv. EJB3 tshem tawm tag nrho cov teeb meem kev thauj mus los ntawm EJB2 (uas siv cov noob taum rau kev nkag mus rau hauv cov ntaub ntawv) los ntawm kev txhawb nqa ntau dua JPA rau tag nrho cov ntaub ntawv pauv.
Tsis zoo li EJB2, uas xav tau lub thawv EJB los ua kom tiav, EJB3 tuaj yeem raug tua hauv ib qho kev ywj pheej JVM (Java Virtual Machine) yam tsis tas yuav tsum tau siv cov ntim khoom (qhov no ua tau vim nws tsis siv cov txheej txheem sib cuam tshuam). Tsis zoo li EJB2, EJB3 yog yooj yim pluggable nrog persistence muab kev pab cuam los ntawm peb tog. Lwm qhov sib txawv tseem ceeb ntawm EJB3 thiab EJB2 yog tias EJB3 tuaj yeem siv cov lus piav qhia raws li kev ruaj ntseg, thaum EJB2 siv cov lus piav qhia raws li kev ruaj ntseg. Qhov no txhais tau hais tias kev teeb tsa thiab teeb tsa kev ua haujlwm tau yooj yim dua hauv EJB3, thiab muaj qhov txo qis hauv kev ua haujlwm nyiaj siv ua haujlwm piv rau EJB2.