Server de aplicații și boabe enterprise java

Chiar am sperat că aș putea să fac fără instalarea IDE-ului, dar, din păcate, timpul nu se oprește și nu mai puteți folosi astfel de sisteme. Pentru astfel de aplicații, este necesar să se facă o mulțime de lucrări manuale, care pot fi caracterizate de o expresie "pentru copaci pădurea nu este vizibilă".







Voi încerca să nu vă las să nu fiți conștienți de unele probleme - chiar dacă codul complet generat necesită înțelegere. Dar așa se va întîmpla.

Vă sugerăm să descărcați un pachet destul de puternic - (bine, că este gratuit) - IDE NetBeans 6.0. Puteți descărca pachetul prin intermediul link-ului NetBeans 6.0

Vă sfătuesc cu tărie (și cereți cu insistență) să încărcați versiunea completă. Da, nu este mic - 169 MB - dar nu veți regreta. În plus, voi face toate exemplele în această versiune.

În principiu, puteți descărca "Web Java EE », dar în același timp ciclul articolelor va crește în mod constant. Și poate vom ajunge la SOA (Service Oriented Architecture). Aceasta este o tehnologie foarte tânără care se va dezvolta în următorii ani. Și dacă aveți timp să înțelegeți principiile de bază și să cunoașteți punctele principale, creșterea profesională va face un salt ascuțit.

Instalarea NetBeans nu ar trebui să vă provoace probleme, deci în acest moment nu mă voi opri. Singurul punct de instalat - Fii atent la setarea parametrilor pentru GlassFish - Adica login / password. În principiu, poate lua parametrii impliciți:

Server de aplicații și boabe enterprise java

GlassFish este un server de aplicații care vine cu NetBeans și este o dezvoltare a Sun. GlassFish este un server de aplicații complet modern care suportă cea mai recentă tehnologie și cele mai recente specificații de la Sun. Deci, utilizați-vă și distrați-vă.

Și încă un lucru - sfatul meu pentru tine - creează o parolă pentru utilizatorul rădăcină în MySQL - nu este dificil. Va fi necesar să executați următorul SQL și nu mai faceți griji.

GRANT ALL ON studenți. * TO 'root' @ '%' IDENTIFICAT DE 'root';

Parola a devenit = rădăcină

M-am întâlnit deja de mai multe ori. că unele sisteme nu înțeleg cu adevărat situația atunci când nu există nici o parolă. Deci, pentru a evita problemele, să facem această acțiune simplă.

Și acum vom vorbi despre ce este un Server de aplicații.

Aceasta este exact sarcina pe care o are Appication Server. Astăzi, Java este probabil cel mai avansat sistem pentru care este creat un astfel de server de aplicații.

Sun a creat o specificație care descrie acele servicii și regulile prin care AppServer ar trebui să funcționeze.

Pentru prima dată vă sfătuiesc să tratați AppServer ca un fel de spațiu de stocare de clasă care este pur și simplu înregistrată într-un mod special sub numele (da, acesta este același JNDI pe care l-am întâlnit cu ceva timp în urmă). Anterior, a trebuit să creați un fișier XML special pentru înregistrare - ejb-jar.xml. Chiar și atunci, au existat mijloace speciale pentru automatizarea acestui proces. Pentru noua specificație, totul a devenit mai ușor. După cum veți vedea în curând.

Aplicația client solicită AppServer pentru o clasă după nume, o primește (dacă este bineînțeles) și o folosește.

Și această clasă se execută sub AppServer. Este AppServer care își asumă sarcina de a lansa o clasă într-un fir separat, își asumă sarcina de a furniza tot felul de resurse - conectivitate la baza de date, apeluri către Web-Services și multe altele. Clientul primește o legătură cu interfața din spatele căreia se ascunde clasa reală. Și clientul primește acest link de la ApplicationServer.

Poate că ne vom întoarce la discuția despre posibilitățile lui AppServer, dar acum există suficiente cuvinte.

Este timpul să vorbim puțin despre aplicațiile care rulează în AppServer. Anume despre Enterprise JavaBeans - EJB.

Vom lucra cu EJB 3.0. Specificația pentru EJB 3.0 a devenit mai matură și mai ușor de utilizat. Dacă doriți să vă familiarizați cu specificații mai vechi, atunci vizitați site-urile de Internet și căutați informații. Dar aceasta este deja dincolo de sfera de aplicare a acestei serii de articole.

În sine, binul nu reprezintă nici o dificultate - este doar o clasă înregistrată pe AppServer și are un anumit set de caracteristici.

Există trei tipuri de fasole:

  1. Entity Bean - mai devreme au fost responsabili pentru salvarea datelor în baza de date. Dar astăzi nu au putut dovedi necesitatea lor. Ele au fost înlocuite cu opțiuni mai convenabile. Numele, în general, rămâne, dar se arată deja pe clase. care sunt "maparea" datelor dintr-un tabel în câmpurile de clasă. Acest lucru este foarte similar cu Hibernate în ideologia sa (pentru cei care sunt familiarizați cu Hibernate)
  2. Sesiunea fasole sunt clase care efectuează logică. Ele sunt foarte importante și necesare.
  3. Fasolea condusă de mesaje - aceste fasole sunt numite atunci când vine un mesaj. Nu vorbim încă de ei. Poate în viitor.

Serverul de aplicații include, de asemenea, o interfață care implementează bin. Interfața va fi prezentată clientului. Și coșul însuși va fi ascuns în intestinul serverului.

Ce altceva este important să înțelegeți sunt modalitățile de a apela la bins. La urma urmei, în realitate, toți se află liniștit și liniștit în limitele aplicației AppServer, care le solicită și la comenzile clienților. În prima specificație, sa decis că fiecare client este o mașină Java separată. Dar o astfel de provocare este foarte "costisitoare". Este nevoie de un mecanism care să permită transferarea datelor de la o mașină JAVA la alta. O soluție foarte eficientă pentru resurse. Prin urmare, sa decis că trebuie să creați două tipuri de apeluri - locale și la distanță (local și la distanță).

Un apel local are loc atunci când clientul este, de asemenea, în mod esențial un coș de gunoi pe același AppServer. De la distanță - ca înainte, aceasta este o altă mașină Java.

Acest articol nu stabilește sarcina de a detalia posibilitățile și construcțiile teoretice - aici ne vom concentra pe practică. Prin urmare, vom amâna cărțile complicate din EJB și vom scrie prima noastră cerere.

Dezvoltarea aplicațiilor pentru întreprinderi

Vom începe de la zero. Da, da. Puteți să uitați de codul dvs. minunat și să lăsați doar baza de date MySQL de care avem nevoie.

Poate că putem folosi JSP și o logică din servlets. Totul altceva se va schimba destul de puternic.

Până în prezent, într-o oarecare măsură, sa dezvoltat o noțiune de aplicație Enterprise. Desigur, conținutul meselor și tabelele în sine, logica de afaceri - este pur personal. Dar există câteva puncte comune. Le vom lua în considerare. Și puțin mai târziu și în "Departamentul de personal".

Principalele componente ale aplicației Enterprise sunt:

În această parte, nu vom crea întreaga aplicație. Mai întâi de toate, există prea mult material. Și în al doilea rând - am o dorință secretă ca tu să încerci să faci ceva. Este posibil ca, în momentul în care este scrisă partea în care vom face ca aplicația noastră să lucreze mai mult sau mai puțin, veți scrie-o singură. Voi fi foarte bucuros să aud despre asta.

Să o conducem pe NetBeans.

Dacă ați făcut acest lucru pentru prima dată, atunci veți avea o imagine minunată.

Server de aplicații și boabe enterprise java

Nu vom discuta despre avantajele și dezavantajele NetBeans pentru mult timp. Luați taurul lângă coarne.







1. Selectați elementul de meniu File-> New Project ...

În dialogul care apare, în arborele Categories, selectați Enterprise. În lista de proiecte selectăm primul element -Aplicație de întreprindere. Faceți clic pe butonul Următor

Server de aplicații și boabe enterprise java

2. Introduceți numele proiectului StudentsApp și faceți clic pe butonul Terminare.

Rețineți calea către proiect și elementele marcate "Creare modul EJB" și "Creare modul de aplicație Web".

După cum probabil ați ghicit deja, acestea sunt aceleași părți pe care le-am menționat mai sus - Server de aplicații și Server Web.

Server de aplicații și boabe enterprise java

3. Ar trebui să vedeți acest ecran. Vă sfătuiesc să mergeți în jurul pomului proiectului. Doar din curiozitate.

Server de aplicații și boabe enterprise java

Este deja clar că aplicația noastră Enterprise include două module - EJB și WEB. Vă recomand să vă obișnuiți să vă gândiți constant la ele
Să mergem mai departe. Acum vom crea două clase (Entitate) care vor fi o "reflecție" a meselor noastre - grupuri și studenți. Pentru a face acest lucru, faceți clic-dreapta pe StudentsApp-ejb, selectați New-> Entity Classes din baza de date. Veți deschide o casetă de dialog în care va trebui să selectați DataSource. Nu avem nevoie de DataSource, desigur, deci alegeți articolul NewData Source (a se vedea figura)

Server de aplicații și boabe enterprise java

În acest caz, vom avea din nou o casetă de dialog, în care nu avem nevoie de parametri, iar din nou trebuie să selectăm conexiunea NewDatabase.

Server de aplicații și boabe enterprise java

Și din nou, NetBeans ne ajută să afișăm următoarea fereastră. Aici vom seta parametrii necesari pentru conexiune.

ATENȚIE. Setați pavilionul pe caseta de selectare "Memorează parola" - altfel conexiunea va eșua.

Server de aplicații și boabe enterprise java

Dacă nu ați făcut o greșeală cu setul, atunci această fereastră ar trebui să fie emise (sau mai degrabă aceeași fereastră, doar următoarea filă)

Server de aplicații și boabe enterprise java

Faceți clic pe OK, vom merge la fereastra Sursa de date, unde vor fi indicate parametrii pentru sursa de date. Faceți clic din nou pe OK.

Dacă nu faci greșeli, atunci trebuie să apară aici o astfel de fereastră

Server de aplicații și boabe enterprise java

Transferăm ambele tabele spre dreapta și dă clic pe Următorul.

Acum, înainte de a vă prezenta aici, există astfel de informații aici. Notă - nu am debifat caseta de selectare "Generați anonimatul numelui de interogare pentru câmpuri persistente".

Nu avem nevoie de astfel de solicitări (cel puțin pentru moment), dar nu vom pierde J

Acordați atenție, de asemenea, numele pachetului pe care l-am introdus. Puteți folosi, bineînțeles, pe ale dvs., dar trebuie să luați în considerare acest lucru.

De asemenea, nu recomand să modificați numele clasei - problema este că cuvântul Grup este important și nu este recomandat să îl utilizați. De aceea plecăm în plural. Apropo, acest lucru ne va aminti (pentru a doua oară) să nu folosim cuvinte "suspecte" pentru nume. "Suspicios" înseamnă. că pot fi folosite ca cuvinte cheie într-o anumită limbă. În general, folosiți prefixele Domnului

Server de aplicații și boabe enterprise java

Faceți clic pe butonul Terminare și vedeți că avem două clase - Grupuri și Studenți. Nu le voi cita codul. În primul rând, nu doriți să deranjeze textul articolului și, în al doilea rând, da, în general, nu este foarte interesant pentru noi. Este generat și până acum acest lucru este suficient.

De asemenea, aș atrage atenția asupra fișierului sun-resources.xml (căutați-l în copac) - acolo veți vedea parametrii minunați ai noștri. Dacă vă uitați atent, vom vedea atât adresa URL a conexiunii, cât și datele de conectare și parola.

Dar nu e tot ce trebuie să lucrăm cu baza de date. În EJB 3.0, a apărut noțiunea de unitate de persistență. De fapt, acesta este un fișier XML care descrie parametrii pentru conectarea la baza de date. După ce o creăm, vom vorbi despre asta.

Deci, din nou, faceți clic dreapta pe StudentsApp-ejb, selectați New-> Other (cel mai probabil nu veți avea elementul PersistenceUnit, dar dacă este, selectați-l imediat). În fereastra afișată, alegeți unitatea de persistență și persistență. Faceți clic pe Următorul.

Server de aplicații și boabe enterprise java

În următoarea fereastră de experți, vedem imaginea de mai jos. Acordați atenție parametrilor stabiliți. În primul rând, este sursa de date. Acesta este selectat din listă și este egal cu cel pe care l-am creat mai devreme. În al doilea rând, grupul "Strategie de generare de tabele" este setat la Nici unul. Tabelele pe care le avem deja, deci nu trebuie să le creăm din nou.

Pentru cei care știu deja ce este Hibernate, este și pe lista Furnizor Persistență. Dar despre el încă o dată. În timp ce luăm opțiunea implicită - TopLink.

Server de aplicații și boabe enterprise java

Imediat după creare, vă puteți uita la fișierul creat - uitați-vă, căutați caracteristici familiare.

să reflectăm asupra a ceea ce am creat. Pe scurt, am făcut următoarele:

  1. Creat fișiere în care informațiile sunt stocate pentru a se conecta la baza de date. Ceea ce este foarte important. Acum aceste informații vor fi folosite de AppServer pentru a lucra cu baza de date. Și nu mai trebuie să ne mai facem griji.
  2. A creat două clase, a căror sarcină este de a stoca date din tabel. Ie fiecare rând din tabelul de grupuri va fi expus de obiectul Group la care putem accesa prin câmpuri. Amintiți-vă munca noastră de a crea metode set / get. Acum totul sa oprit automat. Și, deși este meritul NetBeans, nu EJB, este încă frumos.

Ceea ce a rămas pentru noi să restabilim complet logica aplicației noastre. Cred. că majoritatea dintre dvs. ați ghicit - trebuie să creați o clasă de managementSystem în care să avem metodele necesare pentru editarea și recuperarea datelor. Să o creăm.

Dar acum nu este doar o clasă, ci o clasă SessionBean care va rula sub AppServer. Și bucurați-vă de toate beneficiile acestui lucru.

Din nou primul buton din StudentsApp-ejb, selectați New-> Session Bean ...

Din nou, în fața noastră este o casetă de dialog în care introducem numele clasei ManagementSystem. În mod implicit, vi se va solicita să selectați numai interfața locală. Propun să o las așa cum este - putem avea destul praf de pușcă pentru a ajunge la crearea unui client separat Java de la distanță, dar atunci nimeni nu ne va împiedica să îl creăm.

Server de aplicații și boabe enterprise java

Vom primi două fișiere simultan:

  1. Direct Bean Session - ManagementSystemBean.java, care implementează (va implementa logica noastră)
  2. Interfață locală ManagementSystemLocal.java

Să creați acum o metodă - getStudents. El ne va întoarce un student la identitatea sa.

Apare un nou dialog, în care vom introduce numele metodei, tipul valorii returnate și vom adăuga parametrul de intrare (utilizați butonul Adăugare din dreapta). Introduceți numele și tipul parametrului nostru.

Server de aplicații și boabe enterprise java

Dar până acum nu există cod pentru accesarea bazei de date. Deci, cum ne facem pe elevul nostru bun. Se pare că acest lucru este, de asemenea, foarte ușor.

Și acum voi prezenta codul clasa noastră ManagementSystemBean.java

Rezumatul @PersistenceContext creează în esență un context în care baza de date poate fi manipulată. Sun a încercat cât mai mult posibil să "împingă" dezvoltatorii departe de a scrie cod și a înlocuit toate tipurile de apeluri pentru a se conecta la acest formular simplu.

Clasa EntityManager este o interfață (dacă te uiți la API-ul JEE). După cum deja știm, interfața nu poate face nimic. Deci, în spatele lui este o clasă reală. Cine știe cum să lucreze cu baza de date.

Deci, adnotarea noastră face multe lucruri: creează și inițializează un obiect al unei clase specifice (și acest obiect este creat prin accesarea AppServer), care implementează interfața EntityManager. Dacă analizați cu atenție fișierul persistence.xml (consultați opțiunea nu XML, ci Design), veți vedea elementul Provider Persistence - adică implementarea interfeței. Implicit este TopLink.

În general, pașii de bază pentru a rula aplicația noastră pe AppServer'u am făcut-o. Ramane doar sa adaugam WEB-interfata ca servlet simplu - cine ne impiedica?

Să facem o aplicație WEB foarte simplă. Permiteți-ne pe pagina principală să aibă un formular pentru a introduce studentID și un buton pentru a apela serverul, care ne va arăta datele despre student.

Deschideți proiectul StudentsApp-război și găsiți fișierul index.jsp acolo. Vom face unele modificări.

Acum va arata astfel:

<%@page contentType=»text/html» pageEncoding=»UTF-8″%>







Trimiteți-le prietenilor: