{"id":15994082,"url":"https://github.com/jexp/sdn-boot-example","last_synced_at":"2025-10-09T02:42:48.233Z","repository":{"id":25906010,"uuid":"29346726","full_name":"jexp/sdn-boot-example","owner":"jexp","description":"SDN+Spring Boot Movies Example for SDN.next()","archived":false,"fork":false,"pushed_at":"2015-01-16T12:01:26.000Z","size":104,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-10T08:30:45.410Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jexp.png","metadata":{"files":{"readme":"readme.adoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-16T12:01:18.000Z","updated_at":"2015-07-17T19:02:26.000Z","dependencies_parsed_at":"2022-08-24T14:16:40.945Z","dependency_job_id":null,"html_url":"https://github.com/jexp/sdn-boot-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fsdn-boot-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fsdn-boot-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fsdn-boot-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fsdn-boot-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jexp","download_url":"https://codeload.github.com/jexp/sdn-boot-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266570,"owners_count":20910837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-08T07:05:48.723Z","updated_at":"2025-10-09T02:42:43.212Z","avatar_url":"https://github.com/jexp.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"== Spring Data Neo4j with Spring Boot and Spring Data Rest - Movies Example Application\n\nSpring Data Neo4j was the first Spring Data project, started by the CEOs Rod Johnson and Emil Eifrem.\nIt enables convenient integration of Neo4j in your Spring-based application.\nIt provides object-graph mapping functionality and other features common to the Spring Data projects.\n\nTo use Neo4j with Spring Data Neo4j, you just add the dependency for http://projects.spring.io/spring-boot/[Spring-Boot] and http://projects.spring.io/spring-data-neo4j[Spring-Data-Neo4j] to your build setup.\n\n[source,xml]\n----\ninclude::pom.xml[tags=dependencies]\n----\n\nAfter setting up a Java-based Spring-Boot configuration,\n\n[source,java]\n----\ninclude::src/main/java/movies/spring/data/neo4j/MyNeo4jConfiguration.java[tags=config]\n----\n\nand annotating your `@Node-` and `@RelationshipEntity`, you can use the `Neo4jTemplate` to access Neo4j APIs and object graph mapping functionality.\n\n[source,java]\n----\ninclude::src/main/java/movies/spring/data/neo4j/domain/Movie.java[tags=movie]\n----\n\nAdditionally you can leverage the convenient Spring-Data repositories to get interface-based DAO implementations injected into your Spring Components.\n\n[source,java]\n----\ninclude::src/main/java/movies/spring/data/neo4j/repositories/MovieRepository.java[tags=repository]\n----\n\nIn our case we use the repository from a `MovieService` to compute the graph representation for the visualization.\nThe service is then injected into our main Boot application, which also doubles as `@RestMvcController` which exposes the `/graph` endpoint.\n\nThe other two endpoints for finding multiple movies by title and loading a single movie are provided out of the box by the http://projects.spring.io/spring-data-rest/[Spring-Data-Rest project] which exposes our `MovieRepository` as REST endpoints.\nThe rendering of the movie objects (and related entities) happens automatically out of the box via Jackson mapping.\n\nSee the {github}/examples/java/spring-data-neo4j[GitHub repository] for the source code.\n\n[NOTE]\nThe current version of Spring Data Neo4j works best with an embedded Neo4j database.\nTo achieve highest-performance Neo4j-Server integration move your SDN persistence layer into a Server Extension.\n// Work on improving the Spring Data Neo4j performance with Neo4j server is underway.\n\n=== The Stack\n\nThese are the components of our Web Application:\n\n* Application Type:         Spring-Boot Java Web Application (Jetty)\n* Web framework:            Spring-Boot enabled Spring-WebMVC, Spring-Data-Rest\n* Persistence Access:       Spring-Data-Neo4j\n* Database:                 Neo4j-Server\n* Frontend:                 jquery, bootstrap, http://d3js.org/[d3.js]\n\n=== Endpoints:\n\nGet Movie\n\n----\n// JSON object for single movie with cast\ncurl http://localhost:8080/movies/search/findByTitle?0=The%20Matrix\n\n// list of JSON objects for movie search results\ncurl http://localhost:8080/movies/search/findByTitleContaining?0=matrix\n\n// JSON object for whole graph viz (nodes, links - arrays)\ncurl http://localhost:8080/graph\n----\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjexp%2Fsdn-boot-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjexp%2Fsdn-boot-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjexp%2Fsdn-boot-example/lists"}