자바 웹 개발/스프링부트(10)
-
[SpringBoot] URL 프리픽스
프리픽스란 URL의 접두사 또는 시작 부분을 가리키는 말이다. /question을 프리픽스로 URL매핑을 하기 위해서는 @RequestMapping을 추가하면 된다. QuestionController은 URL 매핑할 때 반드시 /question으로 시작한다. @RequestMapping("/question")@RequiredArgsConstructor@Controllerpublic class QuestionController { private final QuestionService questionService; @GetMapping("/list") public String list(Model model){ List questionList = this.questionService.getList..
2024.08.31 -
[SpringBoot] 상세 페이지 만들기(URL에서 자바 객체값 사용)
질문 목록의 제목을 클릭하면 상세 페이지가 호출되도록 제목에 링크를 추가해보기 위해 .question_list.html을 수정해보자. 제목 작성일시 URL을 연결하기 위해 th:href 속성을 사용한다. URL은 반드시 @{와 } 사이에 입력해야한다. 자바의 객체 값을 더할 때에는 반드시 | |로 감싸주어야 한다. 변하는 id값을 얻기 위해서 QuestionController을 다음과 같이 수정한다. @GetMapping(value = "/detail/{id}") public String ..
2024.08.31 -
[SpringBoot] 서비스 만들기
엔티티는 데이스와 직접 맞닿아 있으므로 곧바로 컨트롤러 또는 템플린 엔진에 전달해 사용하는 것이 좋지 않다. 민감한 데이터가 포함되어 있기 때문이다. 그래서 엔티티 클래스는 컨트롤러에서 사용하지 않고 대신 사용할 DTO 클래스를 만들고 엔티티 객체를 DTO 객체로 변환할 필요가 있다. 이 일은 서비스에서 진행한다. @RequiredArgsConstructor@Servicepublic class QuestionService { private final QuestionRepository questionRepository; public List getList() { return this.questionRepository.findAll(); } 서비스를 사용하기 위해서는 @Service 애너테이션이..
2024.08.31 -
[SpringBoot] 루트 URL 사용하기
서버에 URL을 요청할 때 도메인명 뒤에 아무런 주소도 덧붙이지 않는 URL을 루트 URL이라고 한다. QuestionController 파일을 다음과 같이 수정한다. @GetMapping("/") public String list(Model model){ List questionList = this.questionRepository.findAll(); model.addAttribute("questionList", questionList); 문자열 redirect: 이후에는 URL을 입력하여 페이지를 리다이렉트하는 것이 가능하다.
2024.08.31 -
[SpringBoot] 템플릿 설정
템플릿이란?템플릿은 자바 코드를 삽입할 수 있는 HTML 형식의 파일을 말한다. 템플릿 엔진에는 Thymeleaf, Mustache, Groovy, Freemarker, Velocity 등이 있는데 여기서는 타임리프를 사용한다. 타임리프를 build.gradle 파일을 수정하여 설치한다. implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' 템플릿 사용하기src/main/resources 디렉터리에서 templates를 선택하여 html 파일을 만든다. 이제 @ResponseBody가 필요없으니 삭제하고 템플릿 ..
2024.08.28 -
[SpringBoot] 리포지터리 데이터베이스 관리 기본 기능
리포지터리란?데이터를 관리하려면 데이터베이스와 연동하는 JPA 리포지터리가 필요하다. 리포지터리는 데이터베이스의 데이터를 저장, 조회, 수정, 삭제 등을 할 수 있도록 도와주는 인터페이스다. 리포지터리는 데이터를 관리하는 메서드를 제공한다. public interface QuestionRepository extends JpaRepository { Question findBySubject(String subject); Question findBySubjectAndContent(String subject, String content); List findBySubjectLike(String subject);}public interface AnswerRepository extends JpaRepositor..
2024.08.27