UserRoleEnum에서 UserRoleEnum role = UserRoleEnum.USER;
코드를 실행하면 role
에는 어떻게 "user"라는 문자열이 들어가는가는지가 도저히 이해가 안 된다.
// 이해가 안되는 부분 -------------------------
UserRoleEnum role = UserRoleEnum.USER;
// -----------------------------------------
// UserRoleEnum 클래스
package com.sparta.memo.entity;
public enum UserRoleEnum {
USER(Authority.USER), // 사용자 권한
ADMIN(Authority.ADMIN); // 관리자 권한
private final String authority;
UserRoleEnum(String authority) {
this.authority = authority;
}
public String getAuthority() {
return this.authority;
}
public static class Authority {
public static final String USER = "ROLE_USER";
public static final String ADMIN = "ROLE_ADMIN";
}
}
UserRoleEnum
이라는 enum 클래스는 두 개의 상수, USER
와 ADMIN
,을 가지고 있다. 각 상수는 생성자를 통해 초기화된다. 코드를 살펴보면 USER
상수는 Authority.USER
로 초기화되며 이 Authority.USER
는 "ROLE_USER"라는 문자열로 정의되어 있다. UserRoleEnum.USER
의 authority
값은 "ROLE_USER"가 된다. 이렇게 해서 UserRoleEnum role = UserRoleEnum.USER;
코드를 사용하면 role
객체의 authority
변수는 "ROLE_USER"로 초기화된다.