Spring/SpringBoot

Spring/SpringBoot

[SpringBoot] Interceptor 설정하기

Interceptor Interceptor : 요청에 대한 작업 전/후로 가로챈다. Filter와 다르게 DispatcherServelt이 컨트롤러를 호출하기 전, 후로 끼어들기 때문에 Spring context영역 내부에서 controller에 관한 요청과 응답에 대해 처리. HandlerInterceptor 를 구현하여 사용하며 preHandle,postHandle,afterCompletion 메서드를 구현하여 사용가능하다. preHandle : 컨트롤러 실행 전 postHandle : 컨트롤러 수행 후 결과를 뷰로 보내기 전 afterCompletion : 뷰의 작업까지 완료된 후 수행 WebConfing 설정 interceptor 사용 설정은 아주 간단하다 addInterceptor 를 통해 생성..

Spring/SpringBoot

[SpringBoot] @WithSecurityContext 커스텀하기

WithSecurityContext 테스트 코드를 짜면서 스프링 시큐리티 로그인정보를 필요로 하는 경우가 있는데 @WithMockUser, @WithUserDetails 를 사용하여 인증된 유저를 바탕으로 테스트가 진행가능하다. 하지만, 나의 경우 WithSecurityContext를 커스텀하여 userDetails를 구현한 Member객체로 사용하기 위해 아래와 같이 어노테이션을 추가함 WithMockMember @Retention(RetentionPolicy.RUNTIME) @WithSecurityContext(factory = WithSecurityContextFactoryImpl.class) public @interface WithMockMember { long id() default 1L; St..

Spring/SpringBoot

[Spring Boot] @ConfigurationProperties

@ConfigurationProperties @Value 는 단일값을 주입하기에 적당하다. @ConfigurationProperties 를 통해 값을 주입할 경우 RelaxedBinding이 적용된다. RelaxedBinding ex) resources_url → resourcesUrl을 동일 키값으로 판단 build.gradle implementation 'org.springframework.boot:spring-boot-starter-parent' application.yaml ## config spring: config: import: - classpath:/config-properties.yaml config.yaml site : url: localhost:8080 resources_url: /r..

Spring/SpringBoot

[Spring Boot] Spring Security 6버전 셋팅

spring security 버전이 6로 업그레이드 되면서 셋팅 방법도 일부 변경되었다. Build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.hy' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { annotationProcessor ..

Spring/SpringBoot

[SpringBoot] Gradle 설정

Gradle & SpringBoot Gradle 그래들은 그루비(Grovy)를 기반으로 한 빌드 도구 maven과 같은 이전세대 빌드도구 단점을 보완한 오픈소스 빌드도구 pom.xml에 xml로 작성하여 의존선 선언을하는 maven과 달리 자바문법과 유사하여 자바개발자가 쉽게 익힐수있음 gradle wrapper를 통해 그래이들이 설치되지않은 시스템에서도 프로젝트 빌드가능 buildscript { ext { springBootVersion = '2.1.7.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"..

Spring/SpringBoot

[SpringBoot] JPA

title : "SpringBoot- SpringBoot JPA" category : "SpringBoot" tags : [SpringBoot,JPA] date : 2022-01-23T12:00:00 last_modified_at: 2022-01-23T12:00:00 SpringBoot JPA JPA java 표준 ORM(Object Relational Mapping) 자바와 데이터베이스의 패러다임 을 일치 시켜주기 위한 기술 SQL종속적인 개발에서 벗어나게 함 JPA Adjusting 엔티티의 수정, 생성시간 관리 @Getter @MappedSuperclass // JPA Entity 클래스들이 BaseTimeEntity 를 상속할 경우 필드들을 컬럼으로 인식하도록 함 @EntityListeners(A..

Bogass
'Spring/SpringBoot' 카테고리의 글 목록