Spring(18)
-
[템플릿] DTO to Entity, Entity to DTO
Entity를 DTO로 변환시키거나, DTO를 Entity로 변환시킬 때 사용하는 기본 코드입니다. Entity to DTO @Entity public class Something { ... private String name; private String email; ... public SomethingResponseDto toResponseDto(){ return SomethingResponseDto.builder() .name(name) .email(email) .build(); } } 사용하는 방법 SomethingResponseDto responseDto = something.toResponseDto(); Entity to DTO List 사용하는 방법 List responseDtoList = s..
2023.04.17 -
Spring Security Session기반 인증 방식 VS Spring Security + JWT토큰 인증 방식
Spring Security Session 기반 인증 방식 디렉토리 구조 📁config 📁 auth © CustomUserDetails © CustomUserDetailsService © SecurityConfig 📁 controller © IndexController 📁 model © User 📁 repository ⓘUserRepository 1. SecurityConfig @Configuration public class SecurityConfig { @Bean public BCryptPasswordEncoder encodePwd() { return new BCryptPasswordEncoder(); } @Bean public SecurityFilterChain filterChain(HttpSecu..
2023.04.12 -
[Spring] gradlew: command not found 에러
gradle wrapper를 이용해 jar 파일을 생성하던 중 만난 에러입니다. 인텔리제이 터미널에서 해당 명령어를 입력했을시 $ gradlew build 다음과 같은 에러 문구를 만났습니다. bash: gradlew: command not found 구글링을 해봤을 때 gradlew에 실행권한이 없어 발생한 에러로 아래와 같은 명령으로 실행권한을 부여한 후 chmod +x gradlew $ ./gradlew build 입력했을 시 BUILD SUCCESSFUL되었습니다. + $ ./gradlew build 와 $ gradlew build 둘 다 해보신 후 인텔리제이 재부팅해보시는 걸 추천합니다.
2023.03.09 -
[타임리프] Session Id를 html, js에 가져다 쓰는 방법
토이프로젝트를 할 때 html이나 js로 sessionId가 넘어가지 않아서 애를 많이 먹었습니다. 오히려 자바 코드 짜는 것보다 이 부분에서 시간을 더 많이 쏟은 듯합니다. 그만큼 헷갈리고 다음에도 헷갈릴 가능성이 있기에 기록으로 남겨둡니다. html Controller @GetMapping("/user/{pageUserId}") public String profile(@PathVariable int pageUserId, Model model, @AuthenticationPrincipal CustomUserDetails customUserDetails) { ... model.addAttribute("sessionId", customUserDetails.getUser().getId()); return "..
2023.02.08 -
[Spring Data JPA] 쿼리 메서드 기능
쿼리 메서드 기능 중 메서드 이름만으로 쿼리를 생성하는 기능이 있습니다. 인터페이스에 메서드만 선언하면 해당 메서드가 이름으로 적절한 JPQL 쿼리를 생성해서 실행합니다. Spring Data JPA가 제공하는 쿼리 메소드 기능은 크게 3가지입니다. 메서드 이름으로 쿼리 생성 메서드 이름으로 JPA Named 쿼리, Named 네이티브 쿼리 호출 @Query 어노테이션을 사용해서 리포지토리 인터페이스에 쿼리 직접 정의 @Query 어노테이션을 사용해서 리포지토리 인터페이스에 쿼리 직접 정의 하는 건 토이플젝에서 늘 하던 방식이므로 이번 포스팅에서느 메서드 이름으로 쿼리 생성에 대해 자세하게 살펴보도록 하겠습니다. [ 메소드 이름으로 쿼리 생성 ] 토이프로젝트로 웹 애플리케이션을 만들 때 로그인 input..
2023.01.26 -
스프링 빈 이란? 스프링 빈 등록하는 방법 (@Bean, @Configuration, @Component)
이전 포스팅에서 스프링 IoC컨테이너에 대해 알아보았습니다. 그때 간단하게 빈에 대해 언급하고 넘어갔었는데요, 이번 포스팅에서는 스프링 빈에 대해 알아보도록 하겠습니다. 스프링 빈이란? (Spring Bean) Spring에서 Bean이란 Spring IoC 컨테이너에 의해 관리되는 Java Object를 Bean이라고 하며 Spring에서는 등록되어 있는 Bean을 싱글톤 객체로 생성하여 관리합니다. Spring IoC 컨테이너는 인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공하는데 그중 의존성 주입이 있습니다. 의존성 주입을 받으려면 전제조건으로 빈이 되어야 하므로 이번 포스팅에서는 빈을 등록하기 위한 방법들에 대해 살펴보도록 하겠습니다. 코드 중에 new 연산자로 객체를 ..
2022.11.13