Как использовать Spring Boot с базой данных Amazon Neptune?

0
Я использую Amazon Neptune для своего приложения. Поэтому я хочу знать, есть ли способ использовать Spring Boot (Java) для подключения и использования данных из запросов в рабочей среде Neptune для моего приложения. Я успешно подключился к базе данных Neptune, используя ядро ​​Java с кодом Visual Studio, но я не могу найти никакой документации, которая четко описывает эту процедуру для Spring Boot. Могут ли мне помочь в этом случае? Заранее спасибо!
2
  • Когда вы говорите Spring Boot, вы создаете микросервис или контейнер, использующий Spring Boot, или ищете что-то еще? 2 дня назад
  • Хм, я создаю монолитное приложение, используя весеннюю загрузку для подключения к базе данных neptune. Проблема здесь в том, как подключиться к нептуну через file.properties.
    Tien Vu
    2 дня назад
1

Чтобы использовать Neptune с springboot, вам необходимо добавить файл конфигурации, как показано ниже.

@Configuration
public class NeptuneConfigExample {


@Bean
public Cluster cluster() {
    return Cluster.build()
            .addContactPoint("your-neptune-instance-here.xxxxxxxxxxxx.us-east-1.neptune.amazonaws.com")
            .port(8182)
            .enableSsl(true)
            .keyCertChainFile("./cert/SFSRootCAG2.pem") // download it from https://www.amazontrust.com/repository/SFSRootCAG2.pem 
            .maxConnectionPoolSize(5)
            .maxInProcessPerConnection(1)
            .maxSimultaneousUsagePerConnection(1)
            .create();
    }
}

Для справки - нажмите

2
  • Спасибо @pranav suresh, но я получил сообщение об ошибке, что keyCertChainFile устарел
    Tien Vu
    2 дня назад
  • Вам нужно предоставить свой собственный сертификат только в том случае, если вы не можете использовать сертификат по умолчанию. Во многих случаях вы можете просто оставить эту часть застройщика. Он был заменен использованием Java Keystore во многих выпусках TinkerPop. Поэтому, чтобы избежать устаревания, просто используйте новый параметр конструктора и удалите устаревший или просто удалите этот шаг и используйте сертификат по умолчанию. 2 дня назад
0

Чтобы подключиться к Нептуну

Установите Apache Maven на свой экземпляр EC2. Сначала введите следующее, чтобы добавить репозиторий с пакетом Maven:

sudo wget https://repos.fedorapeople.org/repos/dchen/apache- 
maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache- 
maven.repo

Введите следующее, чтобы установить номер версии для пакетов:

sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache- 
maven.repo

Затем вы можете использовать yum для установки Maven:

 sudo yum install -y apache-maven

Этот пример был протестирован только с Java 8. Введите следующее, чтобы установить Java 8 на свой экземпляр EC2:

sudo yum install java-1.8.0-devel

Введите следующее, чтобы установить Java 8 в качестве среды выполнения по умолчанию для вашего экземпляра EC2:

sudo /usr/sbin/alternatives --config java

При появлении запроса введите номер Java 8.

Введите следующее, чтобы установить Java 8 в качестве компилятора по умолчанию для вашего экземпляра EC2:

sudo /usr/sbin/alternatives --config javac

При появлении запроса введите номер Java 8.

В новом каталоге создайте файл pom.xml, а затем откройте его в текстовом редакторе.

Скопируйте следующее в файл pom.xml и сохраните его (обычно вы можете изменить номера версий до последней стабильной версии):

<project xmlns="https://maven.apache.org/POM/4.0.0" 
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 
 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
 <groupId>com.amazonaws</groupId>
 <artifactId>RDFExample</artifactId>
<packaging>jar</packaging>
 <version>1.0-SNAPSHOT</version>
<name>RDFExample</name>
<url>https://maven.apache.org</url>
<dependencies>
<dependency>
  <groupId>org.eclipse.rdf4j</groupId>
  <artifactId>rdf4j-runtime</artifactId>
  <version>3.6</version>
 </dependency>
 </dependencies>
 <build>
<plugins>
  <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.2.1</version>
      <configuration>
        <mainClass>com.amazonaws.App</mainClass>
      </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
       </configuration>
      </plugin>
    </plugins>
    </build>
 </project>    

Примечание. Если вы изменяете существующий проект Maven, необходимая зависимость выделена в предыдущем коде.

Чтобы создать подкаталоги для исходного кода примера (src / main / java / com / amazonaws /), введите в командной строке следующее:

mkdir -p src/main/java/com/amazonaws/

В каталоге src / main / java / com / amazonaws / создайте файл с именем App.java, а затем откройте его в текстовом редакторе.

Скопируйте следующее в файл App.java. Замените your-neptune-endpoint адресом вашего экземпляра Neptune DB.

package com.amazonaws;

import org.eclipse.rdf4j.repository.Repository;
import org.eclipse.rdf4j.repository.http.HTTPRepository;
import org.eclipse.rdf4j.repository.sparql.SPARQLRepository;

import java.util.List;
import org.eclipse.rdf4j.RDF4JException;
import org.eclipse.rdf4j.repository.RepositoryConnection;
import org.eclipse.rdf4j.query.TupleQuery;
import org.eclipse.rdf4j.query.TupleQueryResult;
import org.eclipse.rdf4j.query.BindingSet;
import org.eclipse.rdf4j.query.QueryLanguage;
import org.eclipse.rdf4j.model.Value;

public class App
{
public static void main( String[] args )
{
    String sparqlEndpoint = "https://your-neptune- 
  endpoint:port/sparql";
    Repository repo = new SPARQLRepository(sparqlEndpoint);
    repo.initialize();

    try (RepositoryConnection conn = repo.getConnection()) {
       String queryString = "SELECT ?s ?p ?o WHERE { ?s ?p ?o } 
    limit 10";

       TupleQuery tupleQuery = 
 conn.prepareTupleQuery(QueryLanguage.SPARQL, queryString);

       try (TupleQueryResult result = tupleQuery.evaluate()) {
          while (result.hasNext()) {  // iterate over the result
               BindingSet bindingSet = result.next();

               Value s = bindingSet.getValue("s");
               Value p = bindingSet.getValue("p");
               Value o = bindingSet.getValue("o");

               System.out.print(s);
               System.out.print("\t");
               System.out.print(p);
               System.out.print("\t");
               System.out.println(o);
          }
       }
    }
}
}

Используйте следующую команду Maven для компиляции и запуска образца:

 mvn compile exec:java
Новый участник
ujjwal dixit is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
1
  • На самом деле это пример SPARQL из документации Neptune. Плакат с вопросами использует Гремлин. 2 дня назад