[게시판]3. 글목록보기 -view컨트롤러

gov's avatar
Nov 18, 2024
[게시판]3. 글목록보기 -view컨트롤러
💡
롬북 의존성 입히기 더미데이터 test클래스

롬북으로 의존성 입히기

기존 방식
@Controller public class BoardController { private final BoardService boardService; // RequiredArgsConstructor 추가하면서 해당 코드 삭제 public BoardController(BoardService boardService) { this.boardService = boardService; } }
💡
@RequiredArgsConstructor Lombok 스프링 DI 방법 중에 생성자 주입을 임의의 코드없이 자동 설정하는 어노테이션
package com.example.blog.Board; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; @RequiredArgsConstructor // hibernate 생성자 만듬 @Controller public class BoardController { private final BoardService boardService; }
package com.example.blog.Board; import jakarta.persistence.EntityManager; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; @RequiredArgsConstructor @Repository public class BoardRepository { // JPA는 EntityManager로 DB에 접근 (자바에서 DBConnection) private final EntityManager em; }

더미데이터 생성

  • resources > db폴더 생성 > .sql 파일 및 더미데이터 만들기
    • notion image
  • Application.properties 외부설정
    • classpath : 스프링이 정한 데이터 리소스 경로
    • spring.jpa.defer-datasource-initialization=true : 테이블 생성과 초기화 이루어짐
    • h2-console sql db 더미데이터 확인
      • notion image

에러 및 test클래스

  • 에러 확인하기 실행 > 콘솔창 ERROR 부분에 내가 만든 클래스를 찾아 옆으로 확인
    • notion image
  • test 클래스 - 확인할 파일과 동일한 이름에 Test붙이기 기능 만들기 > 테스트 > 다음 기능 만들며 진행
    • package com.example.blog.board; import com.example.blog.Board.Board; import com.example.blog.Board.BoardRepository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.context.annotation.Import; import java.util.List; @Import(BoardRepository.class) @DataJpaTest // DB 관련 자원들을 메모리(IoC)에 올림 public class BoardRepositoryTest { // test클래스는 test 붙이기 @Autowired private BoardRepository boardRepository; @Test // 자체 스레드 생성 public void findAll_test() { // given 생략가능 // 매개변수에 파라미터못씀 // when 어디서 찾을건지 List<Board> boardList = boardRepository.findAll(); // eye for(Board board : boardList) { System.out.println(board.getId()); System.out.println(board.getTitle()); System.out.println(board.getContent()); System.out.println(board.getCreatedAt()); System.out.println("==============="); } } }
notion image
 
Share article

goho