웹사이트 검색

자바 프로젝트 롬복


Project Lombok은 Java 프로젝트에서 보일러 플레이트 코드를 줄이는 데 매우 유용한 도구입니다.

문제 설명

package com.askrakesh.java.manage_boilerplate;

import java.time.LocalDate;

public class Person {

	String firstName;
	String lastName;
	LocalDate dateOfBirth;

	public Person(String firstName, String lastName, LocalDate dateOfBirth) {
		super();
		this.firstName = firstName;
		this.lastName = lastName;
		this.dateOfBirth = dateOfBirth;
	}

	public String getFirstName() {
		return firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public LocalDate getDateOfBirth() {
		return dateOfBirth;
	}

	public void setDateOfBirth(LocalDate dateOfBirth) {
		this.dateOfBirth = dateOfBirth;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((dateOfBirth == null) ? 0 : dateOfBirth.hashCode());
		result = prime * result + ((firstName == null) ? 0 : firstName.hashCode());
		result = prime * result + ((lastName == null) ? 0 : lastName.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Person other = (Person) obj;
		if (dateOfBirth == null) {
			if (other.dateOfBirth != null)
				return false;
		} else if (!dateOfBirth.equals(other.dateOfBirth))
			return false;
		if (firstName == null) {
			if (other.firstName != null)
				return false;
		} else if (!firstName.equals(other.firstName))
			return false;
		if (lastName == null) {
			if (other.lastName != null)
				return false;
		} else if (!lastName.equals(other.lastName))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Person [firstName=" + firstName + ", lastName=" + lastName + "dateOfBirth=" + dateOfBirth + "]";
	}

}

클래스에는 인스턴스 변수, equalshashCode 메서드 구현, 모든 필드 생성자 및 toString 메서드 구현에 대한 getter-setter가 있어야 합니다. 이 클래스에는 지금까지 비즈니스 로직이 없으며 비즈니스 로직이 없어도 80줄 이상의 코드가 있습니다. 이것은 미쳤다.

프로젝트 롬복

Project Lombok은 편집기 및 빌드 도구에 자동으로 연결되고 상용구 코드를 줄이는 데 도움이 되는 Java 라이브러리입니다. 먼저 Lombok 프로젝트를 설정하는 방법을 살펴보겠습니다.

Java 프로젝트 Lombok은 어떻게 작동합니까?

Lombok에는 컴파일 시간 동안 처리되는 코드 내에서 사용할 수 있는 다양한 주석이 있으며 사용된 주석에 따라 적절한 코드 확장이 발생합니다. Lombok은 바이트 코드를 컴파일한 후 모든 보일러 플레이트에 삽입된 후 보기 시간의 코드 감소만 수행합니다. 이렇게 하면 코드베이스를 작고 깨끗하며 읽고 유지하기 쉽게 유지하는 데 도움이 됩니다.

프로젝트 롬복 메이븐

프로젝트에 Lombok을 추가하는 것은 간단합니다. maven 프로젝트 pom.xml 파일에 아래 종속성을 추가하기만 하면 됩니다.

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.16.20</version>
</dependency>

IDE에 Lombok 플러그인 추가(Eclipse)

Windows용 설치 단계는 다음과 같습니다.

  1. https://projectlombok.org/download에서 다운로드한 jar 또는 maven 빌드에서 다운로드한 jar를 사용하세요.
  2. 터미널에서 명령 실행: java -jar lombok.jar
  3. 이 명령은 아래 그림과 같은 창을 열고 설치 프로그램을 설치 및 종료하고 eclipse를 다시 시작합니다.

Eclipse 개요에서 Lombok의 엿보기

Lombok의 Java 바이트 코드 엿보기

프로젝트 Lombok 주석

Project Lombok은 다양한 시나리오에서 상용구 코드를 줄이는 데 도움이 되는 많은 주석을 제공합니다. 그들 중 몇 가지를 살펴보겠습니다.

상용구: Java 설계자가 듣고 있습니까?

예, 그렇습니다. 다른 언어와 달리 Java는 이전 버전의 Java에 있는 기존 코드 베이스를 손상시키지 않도록 언어 업그레이드에 최대한 주의를 기울였습니다. 이것은 그 자체로 엄청난 작업이며 훼손될 수 없습니다. 그들은 이미 롤아웃된 언어에서 더 나은 유형 추론 기능을 수정하고 구축하고 있습니다. Java 10에 계획된 중요한 기능 중 하나는 Local-Variable Type Inference입니다. 이 기능은 상용구보다 동적 입력을 추가하는 것과 더 관련이 있지만 상용구 코드를 관리하는 것은 Ocean의 작은 방울입니다.

요약

상용구 코드를 줄이면 가독성이 향상되고 코드가 적으면 오류도 줄어듭니다. Project Lombok은 오늘날 거의 모든 주요 조직에서 많이 사용됩니다. Lombok에서 가장 유용한 기능을 제공했습니다. 시도해 보시기 바랍니다. 소스 코드: 내 Github 링크를 방문하여 이 튜토리얼에서 사용된 전체 소스 코드를 다운로드할 수 있습니다.