본문 바로가기
개발/스프링 프레임웍

스프링 부트 thymeleaf neo4를 이용해 어플리케이션 만들기

by 꿈트리꿈트리 2024. 11. 8.

스프링 부트, Thymeleaf, 그리고 Neo4j를 사용하여 애플리케이션을 개발 샘플 입니다.

참고 자료:

 

 

 

  1. 프로젝트 설정:
    • Spring Initializr를 사용하여 새로운 스프링 부트 프로젝트를 생성하세요.
    • 필요한 종속성을 추가하세요:
      • Spring Web
      • Thymeleaf
      • Spring Data Neo4j
  2. Neo4j 데이터베이스 설정:
    • 로컬 머신에 Neo4j를 설치하거나 Docker를 사용하여 실행하세요.
    • 기본 포트는 7474(HTTP)와 7687(Bolt)입니다.
    • 브라우저에서 http://localhost:7474로 접속하여 데이터베이스를 구성하세요.
  3. application.properties 또는 application.yml 설정:
spring.neo4j.uri=bolt://localhost:7687
spring.neo4j.authentication.username=neo4j
spring.neo4j.authentication.password=your_password

 

엔티티 클래스 생성:

  • Neo4j에서는 노드 엔티티를 생성하기 위해 @Node 어노테이션을 사용합니다.
  • 예시
import org.springframework.data.neo4j.core.schema.Node;
import org.springframework.data.neo4j.core.schema.Id;

@Node
public class Person {
    @Id
    private String id;
    private String name;
    // getters and setters
}

 

 

리포지토리 인터페이스 생성:

  • Neo4jRepository를 상속받아 리포지토리를 생성합니다
import org.springframework.data.neo4j.repository.Neo4jRepository;

public interface PersonRepository extends Neo4jRepository<Person, String> {
    // 추가적인 쿼리 메서드 정의 가능
}

 

서비스 및 컨트롤러 작성:

  • 비즈니스 로직을 처리하는 서비스 클래스를 작성하고, 컨트롤러에서 요청을 처리합니다
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class PersonController {

    private final PersonRepository personRepository;

    public PersonController(PersonRepository personRepository) {
        this.personRepository = personRepository;
    }

    @GetMapping("/persons")
    public String getPersons(Model model) {
        model.addAttribute("persons", personRepository.findAll());
        return "persons";
    }
}

 

 

Thymeleaf 템플릿 작성:

  • src/main/resources/templates 디렉토리에 persons.html 파일을 생성합니다
<!-- persons.html -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Persons List</title>
</head>
<body>
    <h1>Persons</h1>
    <ul>
        <li th:each="person : ${persons}" th:text="${person.name}"></li>
    </ul>
</body>
</html>

 

 

  1. 애플리케이션 실행 및 테스트:
    • 애플리케이션을 실행하고 브라우저에서 http://localhost:8080/persons로 이동하여 결과를 확인합니다.
  2. 추가 구성 및 최적화:
    • 에러 처리: 예외 처리를 위한 전역 에러 핸들러를 구현하세요.
    • 보안 설정: Spring Security를 도입하여 애플리케이션의 보안을 강화합니다.
    • 테스트 작성: 단위 테스트와 통합 테스트를 작성하여 코드의 안정성을 높입니다.

 

개발하시면서 궁금한 점이나 도움이 필요하시면 언제든지 !!