Spring 입문주차/1주차

5. Lombok과 application.properties

note994 2024. 8. 11. 20:48

Lombok이란?

Lombok은 자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메서드/성성자 등을 자동 생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리이다.
----
설치

인텔리J 실행


환경설정
Windows : Ctrl + Alt + S
MacOS : command + ,

검색창에 "Annotation Processors" 입력 후, 우측 "Enable ~" 체크하고 OK 클릭

Shift 두 번 누르고 plugins 입력 후 엔터

lombok을 검색해서 Installed가 되지 않은 상태라면 아래처럼 생긴 아이콘의 우측 Install 버튼 클릭 -> Intellij 재시작

다시 Shift 두 번 누르고 plugins 입력 후 Enter

Lombok을 검색했을 때 installed 상태라면 설치 완료
----

사용

package com.sparta.springprepare;

import lombok.*;

public class Memo {
    private String username;
    private final String contents;
}

Memo.java

 

여기서 코드를 이렇게 수정한다.

package com.sparta.springprepare;

import lombok.Getter;

@Getter
public class Memo {
    private String username;
    private String contents;
}

변경점

import lombok.Getter; 추가

 

@Getter 애노테이션 추가

 

final 삭제

--

오른쪽에 코끼리 모양 클릭(Gradle 버튼) -> build 더블클릭

빌드를 끝마치고 프로젝트 목록에 해당하는 클래스 파일을 열어보면

우리는 만든적 없는 getUsername() 메서드와 getContents() 메서드가 생성되어 있는것을 확인할 수 있다.

--

다시 아까 우리가 직접 작성한 Memo.java 파일로 돌아와서 @Setter를 추가해준다.

@Setter를 입력하고 다시 build 하면

Set 함수를 만들어준다. 이 Get Set 함수들은 Memo 클래스에서 보이진 않지만 이곳에서 만들었기 때문에 사용할 수 있다.


@AllArgsConstructor

 


모든 필드의 값을 받는 생성자를 만들어주는 애너테이션이다.

이 부분을 만들어 주는 것이다. 오류가 뜨는 이유는 네모박스와 중복되기 때문이다.

 

이 상태에서 Memo 객체의 필드를 다 채워넣는 생성자를 만들어 주지 않으면 오류가 발생한다. 컴파일러는 필드에 아무것도 안넣은 기본 생성자를 만들어주지 않기 때문이다.

하지만 @NoArgsConstructor를 넣어주면 기본 생성자를 만들어 주므로 모든 필드를 채울 필요가 없게된다.


@RequiredArgsConstructor

 

final이 달린 필드만 가지는 생성자를 만들어야 한다. 여기선 username 필드만 초기화하는 생성자를 만들어야 한다. contents도 초기화 하려하면 오류가 난다.


application.properties

경로는 이렇다.

 

스프링과 관련된 설정을 할 때 사용되는 파일이다. 또한 추후에 데이터베이스를 연결할 때 데이터베이스에 정보를 전달할 때 이 파일을 이용해서 쉽게 값을 전달할 수 있다.

 

Apach 서버의 기본 포트가 8080으로 되어있는데 이걸 바꿔보겠다.

server.port=8081을 추가

서버를 실행해보니 이전에 8080이었던 포트가 8081로 바뀌었다.