점프 투 스프링부트를 참고하여 학습,작성하였습니다. 1.답변 텍스트란, 버튼 제작question_detail.html에 다음 폼을 추가한다.th:action="@{|/answer/create/${question.id}|}": Thymeleaf 속성으로, 폼이 제출될 URL을 지정한다.method="post": 폼 제출 방식이 POST임을 지정합니다. 이는 서버에 데이터를 제출할 때 사용된다. 2.답변 Controller 제작@PostMapping("/create/{id}"): /create/{id} 경로로 오는 POST 요청을 처리한다.@PathVariable("id") Integer id: URL 경로에서 {id} 값을 추출하여 id 변수에 할당한다.@RequestParam(valu..
BackEnd/SpringBoot
점프 투 스프링부트를 참고하여 학습,작성하였습니다. URL 프리픽스지금 만든 URL의 프리픽스가 /question으로 시작하기 때문에 @RequestMapping("/question") 애너테이션을 추가하여 /question을 생략하게 만든다.package com.example.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import com.example.service.QuestionService;import com.example.model.Question;import java.util.List;import org.springframewor..
점프 투 스프링부트를 참고하여 학습,작성하였습니다.1.질문에 링크 추가Thymeleaf 속성을 사용하여 질문의 subject 텍스트에 /question/detail/${question.id} 링크를 등록한다.Thymeleaf에서 | 기호로 감싸면 문자열 연결, 정적인 URL 구성, 복잡한 문자열 처리를 할수있다.href를 통해 링크를 누르면 HTTP GET요청이 발생한다 . 2.매핑PathVariable은 Spring Framework에서 컨트롤러 메서드의 매개변수로 사용되어 경로 변수(path variable)를 받아오는 데 사용된다.import org.springframework.web.bind.annotation.Pa..
점프 투 스프링부트를 참고하여 학습,작성하였습니다.1.서비스(Service)스프링에서 데이터 처리를 위해 작성하는 클래스컨트롤러에서 리포지터리를 직접 호출하지 않고 중간에 서비스를 두어 데이터를 처리한다. 2.서비스 사용이유비즈니스 로직 분리트랜잭션 관리재사용성단일 책임 원칙테스트 용이성Spring IoC 컨테이너 관리 3.서비스 만들기컨트롤러에서 리포지터리 대신 사용할 서비스를 제작한다.@Service 애너테이션을 사용하여 서비스를 제작한다.기존 컨트롤러에서 리포지터리를 사용한 부분을 옮긴다.package com.example.service;import java.util.List;import org.springframework.stereotype.Service;import com.example..
점프 투 스프링부트를 참고하여 학습,작성하였습니다.1.루트 URL 사용http://localhost:8080을 루트 URL로 http://localhost:8080/question/list에 접속하는것대신 질문목록 화면이 나오게한다.Controller에 다음을 추가한다.루트 경로로 들어갔을때 "/question/list"로 리다이렉트한다.@GetMapping("/")public String root() { return "redirect:/question/list";} 루트 url에 접속했을때 /question/list로 리다이렉트 되어 이동했다.
점프 투 스프링부트를 참고하여 학습,작성하였습니다.1.질문 목록 URL 매핑질문 목록 List가 나올 URL을 매핑한다.question_list.html으로 매핑하기 위해 템플릿 파일 이름 question_list를 리턴한다. @GetMapping("/question/list")public String list() { return "question_list";} 2.템플릿 설정이제 자바 코드를 삽입할 수 있는 HTML 형식의 파일인 템플릿을 만들기 위해 템플릿 엔진 의존성을 pom.xml에 추가한다. org.springframework.boot spring-boot-starter-thymeleaf tamplates 폴더에 question_list.html을 만든다. ├─s..
점프 투 스프링부트를 참고하여 학습,작성하였습니다.1.데이터 수정import static org.junit.jupiter.api.Assertions.assertTrue;로 assertTrue()를 호출assertTrue()는 괄호 안의 값이 true(참) 인지를 테스트import static org.junit.jupiter.api.Assertions.assertEquals; Id가 1인 Question 객체를 찾아 존재한다면 "수정된 사과"로 변경한다.그후 리포지터리의 save 메서드를 사용하여 DB를 저장한다.(update 문을 실행한다.)//수정테스트@Test void ModifyQuestion(){ Optional oq = this.questionRepository.findById(1); ..
점프 투 스프링부트를 참고하여 학습,작성하였습니다.1.데이터 조회1-1.findAll 메서드assertEquals 메서드와 List 인터페이스를 사용하기 위해 다음 2개를 import한다. import static org.junit.jupiter.api.Assertions.assertEquals;import java.util.List; JUnit 테스트 메서드를 작성한다.questionRepository의 findAll 메서드를 호출하여 모든 Question 객체를 조회한다.그후 assertEquals로 사이즈가 2인지, 첫번째 객체가 "사과는 무엇인가요?"인지 를 검사한다.@Testvoid testFindall(){ List all = this.questionRepository.findAll(..