🏆 2024

맛집 분야 크리에이터

🏆 2023

IT 분야 크리에이터

👩‍❤️‍👨 구독자 수

182

✒️ 게시글 수

0
https://tistory1.daumcdn.net/tistory/4631271/skin/images/blank.png 네이버블로그

🩷 방문자 추이

오늘

어제

전체

🏆 인기글 순위

티스토리 뷰

728x90
반응형

 


스프링 부트 쇼핑몰 프로젝트 with JPA 라는 책을 읽으며 정리한 내용입니다, 
이미 스프링부트로는 개발을 많이 해보았으나 JPA를 공부하기 위해 이 책을 골랐습니다.

 

 

 

 

 

이전 포스트를 보려면 아래 링크를 클릭하세요.

[SpringBoot + JPA] tutorial: 스프링 부트 쇼핑몰 프로젝트 with JPA -1. 애플리케이션 생성 및 설정하기

 

[SpringBoot + JPA] tutorial: 스프링 부트 쇼핑몰 프로젝트 with JPA -1. 애플리케이션 생성 및 설정하기

스프링 부트 쇼핑몰 프로젝트 with JPA -1. 애플리케이션 생성하기스프링 부트 쇼핑몰 프로젝트 with JPA 라는 책을 읽으며 정리한 내용입니다, 이미 스프링부트로는 개발을 많이 해

domdom.tistory.com

 

 

 

 

 

@RestController란 Restful Web API를 좀 더 쉽게 만들기위해 스프링 프레임워크 4.0에 도입된 기능입니다.

@RestController는 @Controller와 @ResponseBody를 합쳐놓은 어노테이션으로, ResponseBody 어노테이션은 html파일을 따로 생성하지 않아도 웹 브라우저에 문자열을 그대로 출력할 수 있습니다.

Controller는 뷰와 연결되어, 리턴된 html 파일을 띄워 보여줍니다.

 

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class testController{

	@GetMapping(value = "/")
    public String HelloWorld(){
    	return "Hello World";
    }
}

// 아래와 같음
@Controller
@ResponseBody
public class testController{

	@GetMapping(value = "/")
    public String HelloWorld(){
    	return "Hello World";
    }
}

 

 

 

 

@GetMapping은 클라이언트의 요청을 처리할 URL을 매핑합니다.

method가 GET인 경우 GetMapping을, POST인 경우 PostMapping을, 둘다 지원가능하게끔 하려면 @RequestMapping을 사용하면 됩니다.

프로그램을 실행시켜 띄워보면, Hello world가 정상출력됨을 확인할 수 있습니다.

 

 

반응형

 

 

 

Lombok 라이브러리란?

: 반복적인 Getter/Setter, ToString과 같은 반복적인 자바코드를 컴파일할 때 자동으로 생성해주는 라이브러리입니다. 

Lombok 라이브러리를 사용하려면 Lombok 플러그인을 설치해야합니다.

intellij 상단메뉴 File > Seettings를 클릭합니다.

 

 

 

 

 

Settings 설정창이 나오면, Plugin을 선택하고 Lombok을 검색하여 설치합니다.

 

 

 

 

728x90

 

 

 

설치 후  다시 Settings 설정창에서,

Build, Execution, Deployment > Compiler > Annotation Processors 메뉴로 들어간 후

Enable annotation processing 체크박스에 체크한 후 Apply를 눌러줍니다.

이 설정은 Lombok을 사용하는 프로젝트마다 설정해주어야 합니다.

 

 

 

 

 

 

마지막으로 pom.xml에 Lombok을 추가해주면 끝입니다.

 

 

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
        
        ...
	</dependencies>

 

 

 

Lombok 라이브러리에서 자주 사용하는 어노테이션들을 살펴보겠습니다.

@Getter/Setter 속성들에 대한 Getter/Setter 메소드 생성
@ToString toString() 메소드 생성
@ToString(exclude={"변수명"}) 원치 않는 속성을 제외한 toString() 메소드 생성
@NonNull 해당 변수가 null인지 체크, NullPointerException 예외 발생.
@EqualsAndHashCode equals()와 hashCode() 메소드 생성
@Builder 빌더 패턴을 이용한 객체 생성
@NoArgsConstructor 파라미터가 없는 기본 생성자 생성 
@RequiredArgsConstructor 초기화되지 않은 FInal, @NonNull 어노테이션이 붙은 필드에 대한 생성자 생성
@AllArgsConstructor 모든 속성에 대한 생성자 생성
@Log log 변수 자동 생성
@Value 불변(immutable) 클래스 생성
@Data @Tostring, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor를 합친 어노테이션

 

 

 

 

Lombok의 간단한 예제 DTO 코드입니다.

 

 

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class dto {
    private String name;
    private Integer age;
}

 

 

 

위 DTO를 사용한 컨트롤러입니다.

dto파일에는 getter, setter 메소드가 없지만 lombok으로 인해 정상적으로 동작하는 것을 확인할 수 있습니다. 

 

@RestController
public class testController{

    @RequestMapping(value = "/")
    public String HelloWorld(){
        return "Hello World";
    }
    
    // dto 사용
    @GetMapping(value = "/test")
    public dto test(){
        dto DTO = new dto();
        DTO.setName("hoon");
        DTO.setAge(26);
        return DTO;
    }
}

 

 

 

 

다음 게시물을 보려면 아래 링크를 눌러주세요!

[SpringBoot + JPA] tutorial: 스프링 부트 쇼핑몰 프로젝트 with JPA -3. JPA

 

[SpringBoot + JPA] tutorial: 스프링 부트 쇼핑몰 프로젝트 with JPA -3. JPA

스프링 부트 쇼핑몰 프로젝트 with JPA 라는 책을 읽으며 정리한 내용입니다, 이미 스프링부트로는 개발을 많이 해보았으나 JPA를 공부하기 위해 이 책을 골랐습니다.    이전 포

domdom.tistory.com

 

728x90
반응형
댓글