Spring Boot
-
[ Spring Boot + JPA + Thymeleaf ] 댓글 기능 구현Spring Boot 2021. 3. 18. 22:31
기본적인 게시판 기능을 만들어 보았으니 이번에는 해당 게시물에 댓글을 남기는 기능을 구현해 볼것이다. 우선 DB에 Comment라는 테이블을 만들어 주었고. 댓글 작성자와 어떤 게시물에 달린 댓글인지 알 수 있도록 외래키로 user_id와 board_id를 설정해주었다. 1. Controller - CommentController.java package com.example.myhome.controller; import com.example.myhome.model.Board; import com.example.myhome.model.Comment; import com.example.myhome.repository.BoardRepository; import com.example.myhome.reposito..
-
[ Spring Boot + JPA + Thymeleaf ] 검색 기능 구현Spring Boot 2021. 3. 4. 21:46
검색기능 - 게시판 리스트에서 검색어를 입력 후 버튼을 누르면 제목과 내용에 해당 검색어가 포함되는 리스트들을 출력해주는 기능을 구현 할 것이다. 1. Controller - BoardController.java @Controller @RequestMapping("/board") public class BoardController { @Autowired private BoardRepository boardRepository; @Autowired private BoardValidator boardValidator; // 리스트 출력 @GetMapping("/list") public String list(Model model, @PageableDefault(size = 2) Pageable pageable,..
-
[ Spring Boot + JPA + Thymeleaf ] 페이징 기능 구현Spring Boot 2021. 3. 4. 21:24
Pageable Pageable은 Spring에서 페이징 기능을 위한 파라미터들을 추상화 시킨 인터페이스이다. (인터페이스 자체는 매우 간단하고 메서드명도 직관적이기 때문에 소스를 까보는 것도 좋다) 이 Pageable을 아래와 같이 Controller의 RequestMapping 메서드 인자로 넣을 수 있다. 1. Controller - BoardController.java @Controller @RequestMapping("/board") public class BoardController { @Autowired private BoardRepository boardRepository; @Autowired private BoardValidator boardValidator; // 리스트 출력 @GetM..
-
[ Spring Boot + JPA + Thymeleaf ] validation 추가Spring Boot 2021. 3. 2. 21:39
Bean Validation 도메인 로직에서 값을 검증할 수 있게 도와주는 인터페이스이다. 주요 어노테이션들은 아래와 같다. @AssertTrue @AssertFalse @NotNull // null 불가능 @NotEmpty // null, 빈 문자열(스페이스 포함X) 불가 @NotBlank // null, 빈 문자열, 스페이스만 포함한 문자열 불가 @Size(min=?, max=?) // 최소 길이, 최대 길이 제한 @Null // null만 가능 @Positive // 양수만 허용 @PositiveOrZero // 양수와 0만 허용 @Negative // 음수만 허용 @NegativeOrZero // 음수와 0만 허용 @Min(?) // 최소값 제한 @Max(?) // 최대값 제한 @Email..
-
[ Spring Boot + JPA + Thymeleaf ] 로그인/회원가입Spring Boot 2021. 2. 23. 21:31
이번에는 게시판에 회원가입과 로그인 기능을 추가해볼것이다. 해당 기능을 구현하기 위해 spring security를 사용하였다. [ Spring Security란? ] Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller사이에 위치한다는 점에서 적용 시기의 차이가 있다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때..
-
[ Spring Boot + JPA + Thymeleaf ] 게시판 만들기 - 3Spring Boot 2021. 2. 10. 19:54
* 게시판 CRUD 저번 포스팅에서는 수동으로 내가 넣어논 데이터를 단순히 뿌려주기만 하는 기능을 구현해보았는데, 이번에는 내가 직접 글을 작성하고, 수정, 삭제까지 가능하도록 기능을 구현해보겠다. 우선 글 작성을 위한 페이지를 만들기위해 이번에도 역시 BootStrap에서 참고하여 레이아웃을 잡아주었다. 이제 글 작성 페이지로 넘겨주는 컨트롤러를 작성해야하는데, 이번에는 해당 페이지에서 폼을 전송하여 데이터를 저장해주는 작업이 필요하기 때문에 Board 객체를 생성해주었다. // 내용 입력 폼 @GetMapping("/form") public String form(Model model){ // 신규 폼 model.addAttribute("board", new Board()); return "board/..
-
[ Spring Boot + JPA + Thymeleaf ] 게시판 만들기 - 2Spring Boot 2021. 2. 10. 14:57
게시판 리스트 출력 기능 - 우선 게시판의 기본적이 레이아웃 구성은 BootStrap에서 가져와서 사용하였습니다. - BoardController.java package com.example.myhome.controller; import com.example.myhome.model.Board; import com.example.myhome.repository.BoardRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.we..
-
[ Spring Boot + JPA + Thymeleaf ] 게시판 만들기 - 1Spring Boot 2021. 2. 9. 15:46
Spring Boot를 이용하여 게시판 만들기 개발툴 - intelliJ DB - mariaDB 우선 스프링부트 프로젝트를 개발하려면 jpa와 maven이 설치되어있어야 한다. windows powershell에서 choco 다운 후 명령프롬프트에서 jpa와 maven설치 명령어를 입력하면 손쉽게 설치 가능하다. chocolatey.org/ Chocolatey - The package manager for Windows Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SC..