ejb afhængighed injektion

, ejb 3,0 specifikationer indeholder bemærkninger, der kan anvendes på områder eller setter metoder til at injicere afhængighedsforhold.ejb container, anvender den globale jndi register for at lokalisere afhængighed.foelgende angivelser anvendes i ejb 3,0 for afhængighed injektion.,,,, @ ejb - anvendes til injektion af andre ejb reference.,,,, @ ressource - anvendes til injektion af datasource eller singleton tjenester som sessioncontext, timerservice osv.,,, foranstaltninger til at anvende @ ejb, @ ejb kan anvendes på områder, eller metoder på følgende måde. offentlige klasse librarymessagebean gennemfører messagelistener (//afhængighed injektion på banen.@ ejb librarypersistentbeanremote librarybean;...}, offentlige klasse librarymessagebean gennemfører messagelistener {librarypersistentbeanremote librarybean; //afhængighed injektion på metode.@ ejb (beanname = "kom. tutorialspoint. statsløse. librarypersistentbean") offentlige tomrum setlibrarypersistentbean (librarypersistentbeanremote librarybean) (this.librarybean = librarybean.}.}, foranstaltninger til at anvende @ ressource, @ ressource anvendes normalt til at injicere ejb affaldsbeholder 'er fygter. offentlige klasse librarymessagebean gennemfører messagelistener {@ ressource, private messagedrivencontext mdctx;...}, f.eks. ansøgning, lad os skabe en test ejb anvendelse for at teste afhængighed injektion tjeneste i ejb., stepdescription 1create et projekt med et navn, ejbcomponent under en pakke, com.tutorialspoint.timer, som forklaret i den, ejb - skabe anvendelse, kapitel.3use bønner, der blev skabt i, ejb - besked drevet bean, kapitel.hold resten af filerne uændret.5clean og opbygge anvendelse for at sikre, at erhvervslivet logik er at arbejde som pr. kravene.6finally, anvende anvendelse i form af jar - fil på jboss applikationsserver.jboss applikationsserver vil starte automatisk, hvis det ikke er begyndt endnu.7now skabe ejb klient, en konsol baseret på anvendelse på samme måde som forklaret i, ejb - skabe anvendelse, kapitel under emne, skabe klient adgang til ejb,., ejbcomponent (ejb modul), librarymessagebean.java, pakke com.tuturialspoint.messagebean; import com.tutorialspoint.entity.book; import com.tutorialspoint.stateless.librarypersistentbeanremote; import javax.annotation.resource; import javax.ejb.activationconfigproperty; import javax.ejb.ejb; import javax.ejb.messagedriven; import javax.ejb.messagedrivencontext; import javax.jms.jmsexception; import javax.jms.message; import javax.jms.messagelistener; import javax.jms.objectmessage; @ messagedriven (navn = "bookmessagehandler", activationconfig = {@ activationconfigproperty (propertyname = "destinationtype", propertyvalue = "javax. jms. kø"), @ activationconfigproperty (propertyname ="mål", propertyvalue = "/kø /bookqueue")}) offentlige klasse librarymessagebean gennemfører messagelistener {@ ressource, private messagedrivencontext mdctx; @ ejb librarypersistentbeanremote librarybean; offentlige librarymessagebean() {} offentlige tomrum onmessage (meddelelse meddelelse) (objectmessage objectmessage = ugyldig; prøve (objectmessage = (objectmessage) budskab. bog, bog = (bog) objectmessage. getobject(); librarybean. addbook (bog)} fangst (jmsexception ex) (mdctx. setrollbackonly();}}}, ejbtester (ejb klient), ejbtester.java, pakke com.tutorialspoint.test; import com.tutorialspoint. entity.book; import com.tutorialspoint.stateless.librarypersistentbeanremote; import java.io.bufferedreader; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstreamreader; import java.util.list; import java.util.properties; import javax.jms.objectmessage; import javax.jms.queue; import javax.jms.queueconnection; import javax.jms.queueconnectionfactory; import javax.jms.queuesender; import javax.jms.queuesession; import javax.naming.initialcontext; import javax.naming.namingexception; offentlige klasse ejbtester {bufferedreader brconsolereader = null egenskaber rekvisitter. initialcontext ctx; (rekvisitter = nye properties(); prøve (rekvisitter. belastning (nye fileinputstream ("jndi. egenskaber").} fangst (ioexception ex) (ex. printstacktrace();} prøve (ctx = nye initialcontext (-);} fangst (namingexception ex) (ex. printstacktrace();} brconsolereader = nye bufferedreader (nye inputstreamreader (system. i)} offentlige statisk tomrum vigtigste (string [] args) (ejbtester ejbtester = nye ejbtester(); ejbtester. testmessagebeanejb();} private tomrum showgui() {system. println ("**********************"); system. println ("velkommen til bog butikken"); system. println ("**********************"); system. tryk ("muligheder. n1.tilføj bog. n2.exit. nenter valg: ");} private tomrum testmessagebeanejb() (prøve (int valg = 1; kø kø = (kø) ctx. lookup (" /kø /bookqueue "); queueconnectionfactory fabrik = (queueconnectionfactory) ctx. lookup (" connectionfactory "); queueconnection forbindelse = fabrik. createqueueconnection(); queuesession møde = forbindelse. createqueuesession (falsk, queuesession. auto_acknowledge); queuesender afsender = samling. createsender (op), mens (valg!= 2) {snor bookname; showgui(); snor strchoice = brconsolereader. readline(); valg = tal. parseint (strchoice); hvis (valg = = 1) (system. tryk ("enter bog hedder:"); bookname = brconsolereader. readline(); bog, bog = nye book(); bog. setname (bookname); objectmessage objectmessage = samling. createobjectmessage (bog) afsender. send (objectmessage)} andre, hvis (valg = = 2) {pause.}} librarypersistentbeanremote librarybean = (librarypersistentbeanremote) ctx. lookup ("librarypersistentbean /fjerntliggende");liste < bog > bookslist = librarybean. getbooks(); system. println ("bog (er), der er opført så vidt:" + bookslist. size()); int - = 0 (bog, bog: bookslist) (system. println (i + 1) + "."+ bog. getname()); jeg + +) fangst (undtagen e) (system. println (f. getmessage()); f. printstacktrace();} {{(brconsolereader endelig prøve!= null) (brconsolereader. close();}} fangst (ioexception ex) (system. println (eks. getmessage())}}}}, ejbtester udfører følgende opgaver,.,,, last egenskaber fra jndi.properties og nulstille initialcontext objekt.,,, teststatefulejb() metode, jndi lookup er færdig med navn - "/kø /bookqueue" for at opnå treference i kø til rådighed i jboss.så du er skabt ved hjælp af kø.,,, så brugeren er vist et bibliotek butik brugergrænseflade, og han /hun bliver bedt om at træde valg.,,, hvis brugeren indtaster 1, system kræver bog navn og afsenderen sender den bog navn står i kø.når jboss beholder modtager denne meddelelse i kø, kræver det vores budskab drevet bean er onmessage metode.vores budskab drevet bean så sparer bog med stateful samling bean addbook() metode.samling bean er vedvarende bogen i databasen via entitymanager.,,, hvis brugeren indtaster 2, så en anden jndi lookup er færdig med navn - "librarystatefulsessionbean /fjerntliggende" for at få fjernbetjeningen business objekt (stateful ejb) og opførelse af bøger er gjort.,,, løb klient adgang til ejb, find ejbtester.java i projektet udforsker.højreklik på ejbtester klasse og udvælge, løb fil,., kontrollere følgende output i netbeans konsol. løb: ********************** velkommen til boghandel ********************** muligheder. 1.tilføj bog 2.udførsel træde valg: 1 træde bog navn: lære ejb ********************** velkommen til boghandel ********************** muligheder. 1.tilføj bog 2.udførsel træde valg: 2 bog (er), der er opført så vidt: 2 1.lære java - 1.lære ejb bygge vellykkede (i alt: 15 sekunder), produktion, jf. ovenfor, at vores budskab drevet bean modtager beskeden og lagring af bog i vedvarende oplagring og bøger er retrived fra databasen.,,, vores budskab drevet bean er ved hjælp af librarypersistentbean injiceres i det ved hjælp af @ ejb anmærkning, og i tilfælde af en undtagelse messagedrivencontext objekt anvendes til rollback transaktionen.,,,



Previous:
Next Page: