maven
자바 홈 설정 필수
cmd에 mvn archetype:generate 입력
프로젝트 디렉토리 구조
클래스패스 : 클래스 파일을 인식할 수 있는 경로
src/main/java : 작성하는 자바코드(.java)
src/main/resources : 정적 자원
- 설정 파일(xml, properties)
- css, js, 이미지
src/test/java : 테스트 자바 코드(.java)
src/test/resources : 테스트시 필요 정적 자원
pom.xml : maven 설정 파일
<properties>
node: package.json파일과 동일한 역할
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> : 소스 인코딩
<maven.compiler.source>17</maven.compiler.source> : 소스 컴파일 자바 버전
<maven.compiler.target>17</maven.compiler.target> : 배포 파일(jar) 생성시 자바 버전
</properties>
- 의존성 설정
<dependencies>
</dependencies>
사용자명/.m2 -> 메이븐 레포지토리 (공유)
mvn clean : 컴파일 소스 전체 지우기(target 폴더 삭제)
예) 기존 컴파일 소스 삭제 후 다시 컴파일
mvn clean compile
mvn test : 테스트 케이스를 실행(전체)
mvn package : 배포 파일 생성(jar)
compile -> test -> package(jar)
-> 테스트 미통과시 배포 X
mvn) 기존 컴파일 소스 삭제 후 배포 실행
mvn clean package
jar 파일 실행
java -jar
CTRL + SHIFT + B
버전 표기법
1 .18. 30
(Major) (Minor) (Patch)
Major - 기존 버전과 호환되지 않은 버전
Minor - 호환성에는 문제가 없는 기능 추가, 수정
Patch - 오류, 버그, 수정 있는 경우
lombok.jar
maven central : 의존성 저장소
mvnrepository
@Getter
@Setter
@ToString
@EqualsAndHashCode
@Data - 위 메서드 모두 종합되어있음
package member;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;
@EqualsAndHashCode
@Getter @Setter @ToString
public class Member {
private String userId;
private String userNm;
private String email;
private LocalDateTime regDt;
}
생성자
@NoArgsConstructor : 기본 생성자
@AllArgsConstructor : 모든 멤버 변수로 초기화 생성자
@RequiredArgsConstructor : 필수 멤버 변수를 생성자 매개변수로 추가
-@NonNull
-멤버 변수를 final(상수)로 정의한 경우, 값을 대입하지 않은 경우
@RequiredArgsConstructor
public class Member {
@NonNull
private String userId;
@NonNull
lombok을 사용 설정한뒤 위처럼 에너테이션으로 손쉽게 기본 메서드들 구현 가능.
@RequiredArgsConstructor
+
final
= 필수 멤버 변수 생성자로 생성됨
@ToString.Exclude : toString()에 추가 배제
@ToString.Include : toString()에 추가
@Builder : 빌더 패턴으로 자동 생성
빌더 패턴? -> 값을 설정 -> 객체를 내부에서 생성 패턴
-내부에서 객체를 생성 (외부에서 객체 X) - 생성자 접근 제어자 private