728x90
반응형

Spring/Lombok 8

@RequestParam, @ModelAttribute

@RequestParam과 @ModelAttribute 모두 클라이언트로부터의 전달값을 핸들러의 매개변수로 매핑할 때 사용한다. 각각의 차이가 무엇인지 알아야한다. @RequestParam @RequestParam은 클라이언트에서 전송하는 전달값을 1:1로 매핑한다고 생각하면 된다. 예를 들어, http://localhost:8080/name=kim?age=20 이런 식으로 전달값이 넘어왔다고 가정해보자. 우리는 HTTP Body에서 2개의 전달값을 추출할 수 있다. { "name" : "kim"과 "age" : 20 }이다. 이것들을 하나 하나 추출할 때 @RequestParam을 사용하는 것이다. 사용법을 확인해보면 @Controller public class testController{ @GetMa..

Spring/Lombok 2022.08.01

빈 등록 어노테이션 @Bean @Configuration @Component

영속성 컨테스트 관리를 위해 Bean을 등록하여야한다. 기존의 Spring에서는 xml을 활용하여 Bean을 등록하였지만 프로젝트 규모가 커지게 되면 xml 사용에는 한계가 존재한다. 그래서 탄생하게 된 것이 어노테이션을 이용하여 Bean을 등록하는 것이다. Bean 등록 어노테이션인 @Bean, @Configuration, @Component에 대해 알아보자! 가장 먼저 Spring Bean이란 무엇일까? Spring Bean이란 Spring의 DI Container에 의해 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부르며, 이러한 Bean들은 Spring을 구성하는 핵심 요소이다. Spring의 Bean을 정리하면 아래와 같다. POJO(Plain Old Java Ob..

Spring/Lombok 2022.05.15

@PostConstruct @PreDestroy

▶ 언제 사용할까? 종속성 주입이 완료된 후 실행되어야 하는 메서드에 사용된다. 딱 한 번만 받아오면 되는 값을 사용 할 때마다 요청을 새로 호출하는 실수를 방지. @PostConstruct로 WAS가 뜰 때 한 번만 기본값을 세팅해두고 두고 두고 사용한다. ▶ @PostConstruct란, @PostConstruct는 의존성 주입이 이루어진 후 초기화를 수행하는 메서드이다. @PostConstruct 어노테이션을 설정해놓은 init 메서드는 WAS가 띄어짐과 동시에 실행된다. 이 메서드는 다른 리소스에서 호출하지 않는다고 하더라도 수행된다. ▶ @PostConstruct 사용 이유 1) 생성자가 호출되었을 때, 빈은 초기화되지 않았음(의존성 주입이 아직 이루어지지 않았음) - 이럴 때 @PostCons..

Spring/Lombok 2022.05.08

@Data

▶ @Data @Data 어노테이션은 @Getter / @Setter, @ToString, @EqualAndHashCode와 @RequiredArgsConstructor를 모두 다 합쳐놓은 큰 범주의 세트라고 할 수 있다. POJO(Plain Olde Java Objects)와 bean과 관련된 모든 보일러플레이트(boilerplate = 재사용 가능한 코드)를 생성한다. class의 모든 필드에 대한 getter, setter, toString, equals와 같은 함수들 말이다. // Lombok annotation 사용 @Data public class Member { private String name; private double score; } // Lombok annotation 미사용 pub..

Spring/Lombok 2022.05.03

@RestController @Requestbody @Responsebody

웹 서비스와 REST 방식이 시스템을 구성하는 주요 요소로 자리 잡으면서 웹 시스템 간 XML이나 JSON 등의 반정형 형식으로 데이터를 주고 받는 경우가 증가하고 있다. 이에 따라 스프링 MVC도 클라이언트에서 전송한 XML 데이터나 JSON 또는 기타 데이터를 컨트롤러에서 DOM 객체나 자바 객체로 변환해서 받을 수 있는 기능을 제공하고 있으며, 비슷하게 자바 객체를 XML이나 JSON 또는 기타 형식으로 변환해서 전송할 수 있는 기능을 제공하고 있다. ▶ @RestController @Controller와는 다르게 @RestController는 리턴값에 자동으로 @ResponseBody가 붙게 되어 별도 어노테이션을 명시해주지 않아도 HTTP 응답데이터(Body)에 자바 객체가 매핑되어 전달된다. ..

Spring/Lombok 2022.05.03

@Transactional

@Transactional 스프링에서 지원하는 @Transactional 어노테이션을 이용해 선언적 트랜잭션 처리가 가능하다. 그렇다면, Transactional이 뭘까? 우선, 트랜잭션이란(Transaction)이란? 자바 로직이 수행되는 동안 모든 과정이 오류없이 진행되면 매우 좋겠지만, 그렇게 간단하게 모든 것이 잘 되는 경우는 매우 드물다. 이럴 때 트랜잭션을 이용하여 오류가 없는 경우에만 데이터 베이스에 변경사항을 저장하고, 진행 도중 오류가 발생하게 되면 지금까지 진행했던 모든 과정들을 원래 상태로 되돌려놓는다. 즉, 데이터베이스의 상태를 변경하는 작업 또는 한 번에 수행되어야하는 연산들이 오류 없이 잘 동작하였을 경우에만 데이터베이스에 반영하고 그렇지 않은 경우에는 처음 상태의 데이터베이스로..

Spring/Lombok 2022.04.29

BaseTimeEntity - @MappedSuperclass @EntityListeners(AuditingEntityListener.class)

향로님의 "스프링부트로 웹 서비스 출시하기"에서 가져온 내용입니다! 자세한 내용 참고하고 싶으시면 https://jojoldu.tistory.com/251?category=635883 2) 스프링부트로 웹 서비스 출시하기 - 2. SpringBoot & JPA로 간단 API 만들기 이번 시간엔 SpringBoot & JPA로 간단한 API를 만들 예정입니다. Tip) 아직 SI 환경에선 Spring & MyBatis 를 많이 사용하지만, 쿠팡/우아한형제들/NHN Entertainment 등 자사 서비스를 개발하는 곳에선 SpringBoo.. jojoldu.tistory.com 참고 부탁드립니다. 생성시간 / 수정시간 자동화 - JPA Auditing 보통 Entity에는 해당 데이터의 생성시간과 수정시간..

Spring/Lombok 2022.04.29

롬복(Lombok), @AllArgsConstructor @NoArgsConstructor @RequiredArgsConstructor

▶ 롬복(Lombok) 롬복(Lombok)은 Java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리이다. 반복되는 getter, setter, 생성자의 작성은 코드의 가독을 저해시키고, 번거로운 작업이 될 수 있다. 이는 전체 코드가 복잡해지는 현상을 유발한다. Lombok은 여러가지 어노테이션을 제공하고 이를 기반으로 코드를 컴파일과정에서 생성해주는 방식으로 동작하는 라이브러리이다. 즉 코딩과정에서는 롬복과 관련된 어노테이션만 보이고 getter와 setter 메서드 등은 보이지 않지만 실제로 컴파일된 결과물에는 코드가 생성되어있다. 간단한 예시 코드로 롬복의 편리함을 확인할 수 있다. 순수 Java 코드 public cla..

Spring/Lombok 2022.04.28
728x90
반응형