I dette kapitlet vil vi diskutere hvordan å utvikle en Spring Framework prosjekt å jobbe med Neo4j Database.
Spring DATA Neo4j Mannskaps Stempler
Vi kommer å bruke følgende Spring Framework Stempler å utvikle dette programmet.
S.No.
1. @ GraphEntityTo definere domene klasse en Neo4j Entity2. GraphIDTo definere Node eller Sivil id3. @ GraphPropertyTo definere node eller relasjonsegenskaper
Før utvikle programmet, kan du se "Neo4j Spring DATA Miljø Setup" kapittel til setup Maven Eclipse IDE-prosjektet.
Kort trinn å gjennomføre Spring DATA Neo4j Søknad -
Utvikle Graph Entity eller Domain eller POJO Klasser
Utvikle DAO eller Resurser
Utvikle Tjenesten Layer (om nødvendig)
Våren DATA Neo4j XML-konfigurasjoner
Vi har nå demonstrere hvordan man kan utvikle en Maven basert Spring DATA søknad i Eclipse IDE å utføre Neo4j DB Operations.
Utvikle Graph Entity eller Domain eller POJO Klasser
Vi bør gjennomføre equals () og hashCode () metoder.
Det er ikke nødvendig å gi Settere metode for "id" eiendom fordi Neo4j vil ta seg av å tildele denne eiendommen
pakken com.tp.springdata.neo4j.domain, import org.springframework.data.neo4j.annotation.GraphId; import org.springframework.data.neo4j .annotation.NodeEntity;NodeEntitypublic klasse GoogleProfile {GraphId Long id; private String navn; private String adresse; private String sex; private String dob; offentlig Long getId () {return id; } Public String getName () {return navn; } Public void setName (String navn) {this.name = navn; } Public String getAddress () {return adresse; } Public void setAddress (String adresse) {this.address = adresse; } Public String getSex () {return sex; } Public void setSex (String sex) {this.sex = sex; } Public String getDob () {return dob; } Public void setDob (String dob) {this.dob = dob; } Public boolean equals (Object andre) {if (denne == andre) return true; if (id == null) return false; if ((annet instanceof GoogleProfile)!) return false; returnere id.equals (((GoogleProfile) andre) .id); } Public int hashCode () {return id == null? System.identityHashCode (denne): id.hashCode (); } Public String toString () {return "Profil [id:" + id + ", navn:" + navn + ", sex:" + sex + ", adresse:" + adresse + ", dob:" + dob + "] "; }}
GraphProperty er valgfritt, slik at vi kan utelate dette. Fremfor Entity er samme som under
pakken com.tp.springdata.neo4j.domain;. Import org.springframework.data.neo4j.annotation.GraphId, import org.springframework.data.neo4j.annotation.NodeEntity;NodeEntitypublic klasse GoogleProfile {GraphId privat Long id; private String navn; private String adresse; private String sex; private String dob; //Getter for id //settere og Getters for resten av eiendommer //implementere equals () og hashCode () metoder}
Utvikle Spring DATA Neo4j Repository.
Som vi diskuterte tidligere, må vi utvikle bare grensesnittet ved å utvide Spring DATA Neo4j API-grensesnitt "GraphRepository" og ikke nødvendig gjennomføringen.
Spring DATA Neo4j vil ta seg av å gi implementeringen for dette grensesnittet internt.
Definer en Repository eller DAO grensesnitt for vår Domain Klasse: GoogleProfile
pakken com.tp.springdata.neo4j.dao, import org.springframework.data.neo4j.repository.GraphRepository; felles grensesnitt GoogleProfileRepository strekker GraphRepository < GoogleProfile > {}
Det er veldig lett og enkel å implementere Spring DAT Neo4j depotet. Vi trenger bare å definere et grensesnitt ved å utvide GraphRepository ved å angi vårt domene klassen som en parameter
Utvikle service laget Artifacts:. Grensesnitt og implementering.
Det er god praksis å gi en tjeneste laget i vår applikasjon på toppen av DAO lag
Tjenestearti
Service Component Interface:.
pakken com.tp.springdata.neo4j.service, import org.springframework.data.neo4j.conversion.Result, import com.tp.springdata.neo4j.domain.GoogleProfile; felles grensesnitt GoogleProfileService {GoogleProfile lage (GoogleProfile profil ); void slette (GoogleProfile profil); GoogleProfile findById (lang id); Resultatet < GoogleProfile > findAll ();}
Service Component Gjennomføring:
pakke com.tp.springdata.neo4j.service, import org.springframework.beans.factory.annotation.Autowired; import org.springframework. data.neo4j.conversion.Result, import org.springframework.stereotype.Service, import com.tp.springdata.neo4j.dao.GoogleProfileRepository, import com.tp.springdata.neo4j.domain.GoogleProfile;Service ("googleProfileService") public class GoogleProfileServiceImpl implementerer GoogleProfileService {Autowired privat GoogleProfileRepository googleProfileRepository; offentlig GoogleProfile opprette (GoogleProfile profil) {return googleProfileRepository.save (profil); } Public void slette (GoogleProfile profil) {googleProfileRepository.delete (profil); } Public GoogleProfile findById (lang id) {return googleProfileRepository.findOne (id); } Public Resultat < GoogleProfile > findAll () {return googleProfileRepository.findAll (); }}
Spring DATA Neo4j XML-konfigurasjoner
Å kjøre Spring-baserte applikasjoner, trenger vi å gi noen XML konfigurasjoner.
Vi trenger å oppgi følgende informasjon i Spring XML konfigurasjonsfilen
Gi Spring data Neo4j navne
xmlns: neo4j = http: //www.springframework.org/schema/data/neo4j
Gi Spring data Neo4j Schema Definition ( XSD-fil)
xsi: schemaLocation = "http://www.springframework.org/schema/data/neo4j http://www.springframework.org/schema/data/neo4j/spring-neo4j.xsd "
fjær neo4j.xsd filen inneholder alle Spring data Neo4j relatert XML-koder
gi våre Neo4j Database plassering og våre Graf Entities (Domain eller POJO klasser) grunnpakken
< neo4j: config storeDirectory = "C: \\ TPNeo4jDB"? grunnpakke = "com.tp.springdata.neo4j.domain" />
Her storeDirectory = "C: \\ TPNeo4jDB" definerer våre Neo4j Database-filer er lagret på C:. \\ TPNeo4jDB plassering i vår filsystemet
grunnpakke = "com.tp.springdata.neo4j.domain"
Alle våre Graf Entities har com.tp.springdata. neo4j.domain som grunnpakken i vår søknad CLASSPATH
Gi vår Spring data Neo4j Resurser (DAO Interface) grunnpakken
< neo4j. repositories grunnpakke = "com. tp.springdata.neo4j.dao "/>?
Alle våre Spring data Neo4j Resurser er tilgjengelig på com.tp.springdata.neo4j.dao pakke i vår søknad CLASSPATH
Gi Spring konfigurasjon å registrere Annotated komponenter med Spring IOC Container
< kontekst:.? komponent-scan grunnpakke = "com.tp.springdata.neo4j.service" />
Alle våre komponenter eller tjenester er tilgjengelig på "com.tp.springdata.neo4j.service" pakken i vår søknad CLASSPATH
Complete "googleprofile.xml"
<? xml version = "1.0" encoding = "UTF-8" frittstående ? = "no" > < bønner xmlns = "http://www.springframework.org/schema/beans~~number=plural" xmlns: kontekst = "http://www.springframework.org/schema/context~~number=plural" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns: neo4j = "http://www.springframework.org/schema/data/neo4j~~number=plural" xmlns: tx = "http: //www.springframework .org /schema /tx "xsi: schemaLocation =" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http: //www. springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/data/neo4j http://www.springframework.org /schema/data/neo4j/spring-neo4j.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> < kontekst: komponent-scan grunnpakke = "com.tp.springdata.neo4j.service" /> < neo4j: config storeDirectory = "C: \\ TPNeo4jDB" base-pakke = "com.tp.springdata.neo4j.domain" /> < neo4j: repositories grunnpakke = "com.tp.springdata.neo4j.dao" /> < tx: merknad drevet /> < /bønner >
Utvikle Test programmet og teste alle operasjoner
import java.util.Iterator, import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext, import org.springframework.data.neo4j.conversion.Result, import com.tp.springdata.neo4j.service.GoogleProfileService, import com.tp.springdata.neo4j.domain.GoogleProfile; public class GoogleProfileTest {public static void main (String [] args) {ApplicationContext sammenheng = new ClassPathXmlApplicationContext ("googleprofile.xml"); GoogleProfileService service = (GoogleProfileService) context.getBean ("googleProfileService"); //Vennligst uncomment en av driften delen //og kommentar resterende delen for å teste bare en operasjon om gangen //Her har jeg uncommented CREATE drift og //kommen andre operasjoner: FINN EN, Finn alle, SLETT //CREATE Operation GoogleProfile profil = createPofile (); createProfile (service, profil); System.out.println ("GoogleProfile opprettet."); //FINN ONE /* GoogleProfile profil = getOneProfileById (service, 67515L); System.out.println (profil); * ///FINN ALL /* getAllProfiles (tjenesten); * ///SLETT /* GoogleProfile profil = createPofile (); deleteProfile (service, profil); System.out.println ("GoogleProfile slettet."); * /} Private static GoogleProfile createProfile (GoogleProfileService service, GoogleProfile profil) {return service.create (profil); } Private static void deleteProfile (GoogleProfileService service, GoogleProfile profil) {service.delete (profil); } Private static GoogleProfile getOneProfileById (GoogleProfileService service, Long id) {return service.findById (id); } Private static void getAllProfiles (GoogleProfileService tjeneste) {Resultat < GoogleProfile > Resultatet = service.findAll (); Iterator < GoogleProfile > iterator = result.iterator (); while (iterator.hasNext ()) {System.out.println (iterator.next ()); }} Private static GoogleProfile createPofile () {GoogleProfile profil = new GoogleProfile (); profile.setName ("Profil-2"); profile.setAddress ("Hyderabad"); profile.setSex ("Mann"); profile.setDob ("02/02/1980"); avkastningsprofil; }}
Jeg har uncommented bare for CREATE drift og kommen resten av 3 operasjoner.
Hvis du vil teste andre operasjoner, jut kommentar uønsket delen og uncomment ønsket seksjon og teste dette programmet
Final Eclipse Maven prosjekt struktur
NB: -
Når vi kjører dette programmet, må du sørge for at vår Neo4j Database server bør være i SHUTDOWM staten.
Før du utfører denne Java Program, sjekk din Neo4j er i avslutningsmodus eller ikke. Hvis ikke, klikker du på "Stop" knappen til showdown det.
Kjør GoogleProfileTest.java søknad og se resultatene
Når vi kjører dette CREATE operasjon i Eclipse IDE, kan vi observere følgende meldinger i konsollen
Etter utførelse av visse operasjoner, så starte Neo4j Database server ved å klikke på "Start" -knappen
Åpne Neo4j dataleseren ved hjelp av http.: //localhost: 7474 /url
Skriv under kommando på dataleseren
Klikk på "Execute" -knappen og observere resultatene
Så langt har vi opprettet 3 GoogleProfile noder.