SpringSecurity
·
개발/Spring+JPA
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();authentication에서 나올 수 있는 결과물1. getName()  • 설명: 인증된 사용자의 이름을 반환합니다. 일반적으로는 사용자의 username이 반환되며, 사용자명은 인증 절차에서 사용되는 고유한 식별자입니다. • 예시: authentication.getName() • 반환 값: String 2. getPrincipal()  • 설명: Principal은 인증된 사용자 자체에 대한 정보를 나타냅니다. 실제로는 사용자 객체나 사용자 이름을 포함할 수 있습니다. 인증 방식에 따라 반환되는 객체가 다를 수 있습니다. 예를 들어, UserDe..
No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer
·
개발/Spring+JPA
이슈는 Hibernate에서 lazy-loaded 엔티티(지연 로딩된 엔티티)가 Jackson과 같은 라이브러리로 직렬화될 때 발생하는 문제입니다. Hibernate는 ByteBuddy 같은 프록시를 사용하여 객체를 지연 로딩하는데, 이 프록시가 초기화되지 않은 상태에서 직렬화하려고 하면 에러가 발생합니다. 이 경우, Jackson이 빈 객체를 직렬화할 수 없어 예외가 발생합니다. 핵심 문제:  • Hibernate의 lazy-loaded 프록시 객체를 Jackson이 직렬화할 수 없음.  결론 DTO로 담아서 "필요한 정보"만 보내야하지만 엔티티를 LAZY 조회로 그냥 반환 api를 작성할때 발생한 문제
ModelAttribute와 RedirectAttributes 의 차이점
·
개발/Spring+JPA
RedirectAttributes와 ModelAttribute는 스프링 프레임워크에서 컨트롤러와 뷰 간 데이터를 전달하는 데 사용되는 두 가지 다른 메커니즘입니다. 다음은 각각의 특징과 차이점을 설명합니다:ModelAttribute:@ModelAttribute는 컨트롤러의 메서드 매개변수에 사용되며, 모델에 데이터를 바인딩합니다.@ModelAttribute를 사용하여 데이터를 전달하면, 해당 데이터는 모델에 저장되어 뷰에서 사용할 수 있습니다.주로 폼 입력 데이터를 바인딩하고 초기화하는 데 사용됩니다.@ModelAttribute는 요청을 처리하는 동안 컨트롤러 메서드 내에서 사용됩니다.예를 들어, @ModelAttribute("class") ClassDTO classDTO는 "class"라는 이름으로 C..
생성자와 @NoArgsConstructor(access = PROTECTED)
·
개발/Spring+JPA
열심히 만들어보다가 왜 생성자를 사용하고 final 키워드를 사용해도 되는지 궁금하여 조사해보았다. 아래 코드는 이를 적용한 내용이다. @Component@RequiredArgsConstructorpublic class Admin implements ApplicationRunner{ private final AdminRepository adminRepository; private final PasswordEncoder passwordEncoder; @Override public void run(ApplicationArguments args) throws Exception { Optional optionalAdminEntity = Optional.ofNullable(adm..
dev.hong96
'개발/Spring+JPA' 카테고리의 글 목록