본문 바로가기

Java Spring Boot

생성자는 언제 실행이 되는지?

 

=> 클래스의 인스턴스(객체가) 실행될 때 실행됨

CustomUserDetails 클래스의

public CustomUserDetails(JwtDto.memberInfo memberInfo) 생성자는

클래스의 인스턴스가 생성될 때만 호출됩니다.

즉, CustomUserDetails 객체가 생성될 때만 해당 생성자가 실행됩니다.

 

 

  @Getter
public class CustomUserDetails implements UserDetails {

  private String username;
  private String password;
  private final boolean accountNonLocked = true;
  private final boolean accountNonExpired = true;
  private final boolean credentialsNonExpired = true;
  private final boolean enabled = true;
  private Collection<? extends GrantedAuthority> authorities;


  private final Long memberId;
  private final int level;
  private final String memberName;

  public CustomUserDetails(JwtDto.memberInfo memberInfo) {
    // 추가
    this.memberId = memberInfo.getMemberId();
    this.level = memberInfo.getLevel();
    this.memberName = memberInfo.getMemberName();
  }
  
  ------------------------------------------------------------------------
  
  @GetMapping
  public List<ChurchResDto.getChurch> getChurchList(
      @AuthenticationPrincipal CustomUserDetails customUserDetails,
      @RequestParam(required = false) String churchName) {
    return this.churchService.getChurchList(customUserDetails, churchName);
  }