스프링 부트, Thymeleaf, 그리고 Neo4j를 사용하여 애플리케이션을 개발 샘플 입니다.
참고 자료:
- 프로젝트 설정:
- Spring Initializr를 사용하여 새로운 스프링 부트 프로젝트를 생성하세요.
- 필요한 종속성을 추가하세요:
- Spring Web
- Thymeleaf
- Spring Data Neo4j
- Neo4j 데이터베이스 설정:
- 로컬 머신에 Neo4j를 설치하거나 Docker를 사용하여 실행하세요.
- 기본 포트는 7474(HTTP)와 7687(Bolt)입니다.
- 브라우저에서 http://localhost:7474로 접속하여 데이터베이스를 구성하세요.
- 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>
- 애플리케이션 실행 및 테스트:
- 애플리케이션을 실행하고 브라우저에서 http://localhost:8080/persons로 이동하여 결과를 확인합니다.
- 추가 구성 및 최적화:
- 에러 처리: 예외 처리를 위한 전역 에러 핸들러를 구현하세요.
- 보안 설정: Spring Security를 도입하여 애플리케이션의 보안을 강화합니다.
- 테스트 작성: 단위 테스트와 통합 테스트를 작성하여 코드의 안정성을 높입니다.
개발하시면서 궁금한 점이나 도움이 필요하시면 언제든지 !!
'개발 > 스프링 프레임웍' 카테고리의 다른 글
spring boot, thymeleaf, neo4j 그래픽 시각화 하기 sigma.js 샘플 (1) | 2024.11.10 |
---|---|
JSON-LD란 무엇인가요? 스프링에 적용 방법 쉽게 설명해 드릴게요. (2) | 2024.11.07 |
jdk 받을땐 adoptOpenJdk (0) | 2021.09.02 |
Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'. 발생 시 (0) | 2021.04.06 |
intellij tomcat 설정 and 한글 깨짐 처리 (0) | 2020.11.25 |