728x90

2023/09 26

Spring - 예외 처리

- 기존의 Controller에서 발생하는 예외들은 @ControllerAdvice 어노테이션이 붙은 클래스에서 처리가 가능하다. - @ControllerAdvice는 전역 예외 처리가 가능하고 예외가 발생했을 때 처리할 수 있는 공통 로직을 제공한다. - PostCreate.java ..... @NotBlank(message = "title을 입력해주세요") private String title; @NotBlank(message = "content를 입력해주세요") private String content; ..... - Post 엔티티에 대한 DTO에 해당하는 PostCreate는 @NotBlank 어노테이션으로 인해 스프링이 제공하는 기본적인 검증이 이루어 진다. - 하지만 기본적으로 제공하는 검증..

Programming/Spring 2023.09.06

Spring, Java - Builder 패턴 분석

- 결론부터 얘기하자면 Builder 패턴을 사용하게 되면, build() 메서드가 호출되기 전까지는 builder 클래스 안에 데이터가 저장되어 있다가 build() 메서드가 실행된 후에 해당 객체 필드에 값이 들어가게 된다. - 아래 예를 통해 데이터 주입 과정을 알아 볼 것이다. 1. Post, PostEditor라는 엔티티가 생성되어 있다. 2. Post에는 아래와 같이 toEditor(), edti() 메서드가 작성되어 있다. public PostEditor.PostEditorBuilder toEditor() { return PostEditor.builder() .title(title) .content(content); } public void edit(PostEditor postEditor) ..

Programming/Spring 2023.09.06

Spring - 게시글 수정 / 삭제

- 게시글을 수정 및 삭제하는 방법에 대해 알아 볼 것이다. - 게시글 수정 - PostEdit.java @Getter @Setter @ToString public class PostEdit { @NotBlank(message = "title을 입력해주세요") private String title; @NotBlank(message = "content를 입력해주세요") private String content; @Builder public PostEdit(String title, String content) { this.title = title; this.content = content; } } - PostService.java @Transactional public void edit(Long id, Po..

Programming/Spring 2023.09.05

2023.09.05.TUE

- @Transactional @Transactional 어노테이션을 붙이면 일반적으로 save() 메서드를 호출하지 않아도 변경 내용이 자동으로 DB에 저장될 수 있습니다. @Transactional 어노테이션이 메서드 레벨이나 클래스 레벨에 적용되면 해당 메서드 내에서 일어나는 데이터베이스 관련 작업들은 하나의 트랜잭션으로 묶이게 됩니다. Spring Framework에서 @Transactional 어노테이션을 사용하면 다음과 같은 동작이 발생합니다: 메서드 내에서 데이터베이스 작업이 시작될 때 트랜잭션이 시작됩니다. 메서드 실행 도중 예외가 발생하지 않으면, 메서드가 정상적으로 종료되면서 트랜잭션이 커밋됩니다. 이때 변경 내용이 데이터베이스에 저장됩니다. 메서드 실행 도중 예외가 발생하면 트랜잭션이..

Programming/TMP 2023.09.05

2023.09.04.MON

- @Configuration, @Component - 용도와 역할 1. @Configuration: @Configuration 어노테이션이 지정된 클래스는 스프링의 자바 기반 설정 클래스로 취급됩니다. 이 클래스 내부에는 @Bean 어노테이션을 사용하여 스프링 빈을 정의하고 구성합니다. 스프링 컨테이너에게 빈(Bean)을 생성하고 구성하는 역할을 합니다. 2. @Component: @Component 어노테이션이 지정된 클래스는 스프링의 컴포넌트 스캔의 대상으로 취급됩니다. 컴포넌트 스캔은 지정된 패키지에서 @Component 어노테이션이 지정된 클래스들을 찾아서 자동으로 스프링 빈으로 등록하는 기능을 제공합니다. 주로 비즈니스 로직, 서비스, 컨트롤러 등과 같은 구성 요소를 스프링 빈으로 만들 때 사..

Programming/TMP 2023.09.04
728x90