5. Lombok과 application.properties
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로 바뀌었다.