분류 전체보기
[SpringBoot] SpringSecurity 무한 redirect 발생
홈페이지 메인페이지에 접속했더니 로그인 페이지가 무한 redirect 돼서 오류가 발생했다. 기존코드 - SecurityConfig @Bean SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf((csrfConfig) -> csrfConfig.disable() ) // csrf 토큰 비활성화 (테스트시 걸어두는게 좋음) .authorizeHttpRequests((authorize) -> authorize .requestMatchers("/", "/auth/**", "/js/**", "/css/**", "/img/**").permitAll() .anyRequest() .authenticated() ) .formLo..
[Springboot] 블로그 만들기 (41)_ 댓글 삭제
detail.jsp 댓글 리스트 ${ reply.content } 작성자 : ${ reply.user.userName } 삭제 board.js let index = { init: function() { } , replyDelete: function(boardId, replyId) { $.ajax({ type: "DELETE", url: `/api/board/${boardId}/reply/${replyId}`, dataType: "json" }).done(function(resp) { alert("댓글 삭제가 완료되었습니다."); location.href = `/board/${boardId}`; }).fail(function(error) { alert(JSON.stringify(error)); }); } ..
[Springboot] 블로그 만들기 (40)_ 회원가입, 게시글 삭제 문제 해결
문제점 : 회원가입시에 중복아이디에 대해서 회원가입이 되는것처럼 동작한다. 하지만 실제로 DB에는 반영이 안된다. GlobalExceptionHandler 회원가입완료 버튼을 눌러서 오류가 발생하게 되면 GlobalExceptionHandler를 타게 된다. 그리고 500을 반환한다. --> 500을 응답했을 경우에 대해서 분기처리를 하면 된다. @ControllerAdvice // 어느파일에서나 Exception이 발생해도 이 함수를 타게 하기 위한 어노테이션 @RestController public class GlobalExceptionHandler { @ExceptionHandler(value=Exception.class) public ResponseDto handleArgumentException..
[Springboot] DI(Dependency Injection) 3가지 방법
방법 1 기본원리 @Service public class BoardService { public BoardService(BoardRepository bRepo, ReplyRepository rRepo) { this.boardRepository = bRepo; this.replyRepository = rRepo; } } 방법 2 @AutoWired 사용 @Service public class BoardService { @Autowired private UserRepository userRepository; @Autowired private BoardRepository boardRepository; @Autowired private ReplyRepository replyRepository; } 방법 3 @r..
[Springboot] 블로그 만들기 (39)_댓글 작성하기 (네이티브 쿼리 사용)
BoardApiController @PostMapping("/api/board/{boardId}/reply") public ResponseDto replySave(@RequestBody ReplySaveRequestDto replySaveRequestDto) { boardService.댓글쓰기(replySaveRequestDto); return new ResponseDto(HttpStatus.OK.value(), 1); } BoardService @Transactional public void 댓글쓰기(ReplySaveRequestDto replySaveRequestDto) { replyRepository.mSave(replySaveRequestDto.getUserId(), replySaveRequest..
[Springboot] 블로그 만들기 (38)_댓글 작성하기 (Dto사용)
ReplySaveRequestDto.java @Data @AllArgsConstructor @NoArgsConstructor public class ReplySaveRequestDto { private int userId; private int boardId; private String content; } detail.jsp 등록 BoardApiController.java @PostMapping("/api/board/{boardId}/reply") public ResponseDto replySave(@RequestBody ReplySaveRequestDto replySaveRequestDto) { boardService.댓글쓰기(replySaveRequestDto); return new ResponseD..
[Springboot] 블로그 만들기 (37)_댓글 작성하기
지금은 댓글이 잘 정렬돼서 나오고 있지만 댓글의 순서를 바꾸고 싶다면 @OrderBy 어노테이션을 사용하면 된다. @JsonIgnoreProperties({"board"}) @OneToMany(mappedBy = "board", fetch = FetchType.EAGER) @OrderBy("id asc") // id를 기준으로 오름차순, 안쓰면 default는 오름차순 (내림차순 정렬은 desc) private List replys; detail.jsp 등록 board.js let index = { init: function() { $("#btn-reply-save").on("click", () => { this.replySave(); }); } , replySave: function() { let da..
[Springboot] 블로그 만들기 (36)_무한참조 방지하기
Board.java @Data @NoArgsConstructor @AllArgsConstructor @Builder @Entity public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) // auto_increment private int id; @Column(nullable = false, length = 100) private String title; @Lob private String content; private int count; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name="userId") private User user; @OneToMany(mappedBy = ..