본문 바로가기
반응형

🖥Web/🔥SpringBoot8

[SpringBoot] HttpSession값 바로 가져오기, 어노테이션 기반 Session 으로 개선하기 기본으로 HttpSession 값 바로 가져오는 방식에서 어노테이션 기반 Session 으로 개선하기 패키지 구조 build.gradle buildscript { ext { springBootVersion = '2.1.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } plugins { id 'java' id 'eclipse' id 'org.springframework.boot' version '2.3.2.RELEASE' id 'io.spring.dependency-management' ver.. 2022. 6. 13.
[SpringBoot] JPA Auditing이란? Auditing example JPA Auditing이란? Auditing example JPA Auditing이란? 어노테이션 기반 감사 메타데이터 엔티티 클래스에 상속 활성화 어노테이션 추가 JPA Auditing이란? 보통 엔티티에는 해당 데이터의 생성시간과 수정시간을 포함합니다. 언제 만들어졌는지, 언제 수정되었는지 등은 차후 유지보수에 있어 굉장히 중요한 정보이기 때문입니다. 그렇다 보니 매번 DB에 삽입하기 전, 갱신하기 전에 날짜 데이터를 등록/수정하는 코드가 여기저기 들어가게 되는데, 이러한 반복적인 코드가 모든 테이블과 서비스 메소드에 포함되는것은 굉장히 불편한 일입니다. Spring Data는 엔티티를 생성하거나 변경한 사람과 발생한 시점을 투명하게 추적하기 위한 정교한 지원을 제공합니다. 해당 기능의 이점을 얻으려.. 2022. 6. 6.
[SpringBoot] 쿼리 로그 확인 application.properties, application.yml build.gradle buildscript { ext { springBootVersion = '2.1.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } plugins { id 'java' id 'eclipse' id 'org.springframework.boot' version '2.3.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' } group 'com.example.base' version '1.0-SNA.. 2022. 6. 2.
[SpringBoot] build.gradle, repositories, dependencies, repositories, dependencies란? Gradle이란? Gradle은 유연성과 성능에 중점을 둔 오픈 소스 빌드 자동화 도구입니다. Gradle 빌드 스크립트는 *Groovy 또는 Kotlin *도메인 특화 언어(DSL)을 사용하여 작성됩니다. 💡도메인 특화 언어(DSL: Domain-specific language) 특정한 도메인을 적용하는데 특화된 컴퓨터 언어 💡Groovy Groovy는 자바에 파이썬, 루비, 스몰토크등의 특징을 더한 동적 객체 지향 프로그래밍 언어이다. Gradle scripts는 Configuration scripts 입니다. script가 실행되면 특정 유형의 개체를 구성합니다. 예를들면 build script가 실행될때 프로젝트 유형의 개체를 구성합니다. 이 개체를 스크립트의 대리자 개체 라고 합니다. 스크립트 .. 2021. 12. 18.
[SpringBoot] AOP 트랜잭션 처리, 롤백, AspectJ 트랜잭션처리transactionAdvice, transactionAdviceAdvisor example TransactionConfig.java package com.example.base.config; import java.util.Collections; import java.util.HashMap; import org.aspectj.lang.annotation.Aspect; import org.springframework.aop.Advisor; import org.springframework.aop.aspectj.AspectJExpressionPointcut; import org.springframework.aop.support.DefaultPointcutAdvisor; import org.springframework.beans.factory.annotation.Autowired; import org... 2021. 1. 19.
[SpringBoot] AOP AspectJ @Aspect 적용하기 @Pointcut, @Around, @Before, @AfterReturning, @After, @AfterThrowing, example code AOP 주요 개념 AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점지향은 쉽게말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는것을 말한다. 예로들어 핵심적인 관점은 결국 우리가 적용하고자 하는 핵심 비즈니스 로직이 된다. 또한 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등을 예로 들을 수 있다. AOP에서 각 관점을 기준으로 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미다. 이때, 소스 코드 상에서 다른 부분에 계속 반복해서 쓰는 코.. 2021. 1. 14.
[SpringBoot] Filter(필터) OncePerRequestFilter간단히 사용하기 Filter란 서블릿의 ServletContext 기능으로 사용자에 의해 서블릿이 호출 되기 전/후로 사용자 요청/응답의 헤더 정보 등을 검사 및 설정할 수 있다. Servlet Filter와 HandlerInterceptor의 차이 Filter와 Interceptor 비교 필터는 DispatcherServlet 앞에서 먼저 동작하고, 인터셉터는 DispatcherServlet에서 Controller(Handler) 사이에서 동작한다. 필터 웹 어플리케이션의 Context의 기능 스프링 기능을 활용하기에 어려움 일반적으로 인코딩, CORS, XSS, LOG, 인증, 권한 등 을 구현 인터셉터 스프링의 Spring Context의 기능이며 일종의 빈 스프링 컨테이너이기에 다른 빈을 주입하여 활용성이 좋음 .. 2021. 1. 13.
[SpringBoot] Interceptor(인터셉터) HandlerInterceptor로 간단히 intercept하기 HandlerInterceptor : 세션이나 쿠키, 검증 등을 위하여 사용한다. 일반적인 요청흐름이 흐르기전에 controller 전에 가로채서 처리한다. Servlet Filter와 HandlerInterceptor의 차이 Filter와 Interceptor 비교 필터는 DispatcherServlet 앞에서 먼저 동작하고, 인터셉터는 DispatcherServlet에서 Controller(Handler) 사이에서 동작한다. 필터 웹 어플리케이션의 Context의 기능 스프링 기능을 활용하기에 어려움 일반적으로 인코딩, CORS, XSS, LOG, 인증, 권한 등 을 구현 인터셉터 스프링의 Spring Context의 기능이며 일종의 빈 스프링 컨테이너이기에 다른 빈을 주입하여 활용성이 좋음 다른 빈.. 2021. 1. 13.
반응형