프록시

· Spring
이번 시간에는 @EnableTransactionManagement 애노테이션에이 제공하는 속성에 대해 알아봅시다. @EnableTransactionManagement 애노테이션의 속성 속성 설명 proxyTargetClass 클래스를 이용해서 프록시를 생성할지 여부를 지정한다. 기본값은 false로서 인터페이스를 이용해서 프록시를 생성한다. order AOP 적용 순서를 지정한다. 기본값은 가장 낮은 우선순위에 해당하는 int의 최댓값이다. 트랜잭션 전파 public class SomeService{ private AnyService anyService; @Transactional public void some(){ anyService.any(); } public void setAnyService(Any..
· Spring
[Spring] @Transacational과 프록시 스프링은 @Transactional 애노테이션을 이용해서 트랜잭션을 처리하기 위해 내부적으로 AOP를 사용합니다. 실제로 @Transactional 애노테이션을 적용하기 위해 @EnableTransaction Management 태그를 사용하면 스 muscleking3426.tistory.com 이전 포스팅에 이어 작성하겠습니다. @Transactional 적용 메서드의 롤백 처리 커밋을 수행하는 주체가 프록시 객체였던 것처럼 롤백을 처리하는 주체 또한 프록시 객체입니다. try { cps.changePassword("madvirus@madvirus.net", "3333", "1111"); System.out.println("암호 변경"); } cat..
· Spring
이번에는 Spring에서 Advice 적용 순서에 대해 알아보겠습니다. 한 Pointcut에 여러 Advice를 적용할 수도 있습니다. CacheAspect package aspect; import java.util.HashMap; import java.util.Map; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; /** * 간단하게 캐시 기능을 구현한 클래스 */ @Aspect public class CacheAspect { privat..
· Spring
[Spring] Spring AOP 구현해보기 (@Aspect, @Pointcut, @Around) 이전 글 [Spring] Spring AOP AOP AOP : Aspect Oriented Programming의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법입니다. AOP는 핵심 기능과 공통 기능 muscleking3426.tistory.com 프록시 생성 방식 package config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context...
· Spring
이전 글 [Spring] Spring AOP AOP AOP : Aspect Oriented Programming의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법입니다. AOP는 핵심 기능과 공통 기능의 구현을 분리함으로 muscleking3426.tistory.com 스프링 AOP 구현 스프링 AOP를 이용해서 공통 기능을 구현하고 적용하는 방법은 단순합니다. - Aspect로 사용할 클래스에 @Aspect를 붙인다. - @Pointcut으로 공통 기능을 적용할 Pointcut을 정의한다. - 공통 기능을 구현한 메서드에 @Around를 적용한다. @Aspect, @Pointcut, @Around를 이용한 AOP 구현 개발자는 공통 기능을 제공하는 As..
· Spring
AOP AOP : Aspect Oriented Programming의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법입니다. AOP는 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있게 만들어 줍니다. AOP는 우리말로 관점지향 프로그래밍 정도로 많이 번역하고 있으나, Aspect는 구분되는 기능이나 요소를 의미하기 때문에, '관점'보다는 '기능 또는 관심'이라는 표현이 더 알맞습니다. 스프링도 프록시를 이용해서 AOP를 구현하고 있습니다. AOP의 기본 개념은 핵심 기능에 공통 기능을 삽입하는 것입니다. 즉, 핵심 기능의 코드를 수정하지 않으면서 고통 기능의 구현을 추가하는 것이 AOP입니다. ..
· Spring
트랜잭션의 처리 방식을 이해하려면 AOP(Aspect Oriented Programming)를 이해해야 합니다. 제일 어려운 부분이니 자세히 짚어보겠습니다. 이전 요약글 [Spring] AOP 프로그래밍이란 ? AOP(Aspect-Oriented Programming)는 소프트웨어 개발에서 모듈화와 코드 재사용을 향상하기 위한 프로그래밍 패러다임 중 하나입니다. AOP는 주로 코드의 횡단 관심사(Cross-Cutting Concerns)를 분리하여 모듈 muscleking3426.tistory.com 준비 먼저 AOP 프로젝트를 준비하기 위해 pom.xml의 Dependencies에 아래코드를 추가해 줍니다. org.aspectj aspectjweaver 1.8.13 스프링 프레임워크의 AOP 기능은 s..
· Java
💡Proxy Pattern 대리인 이라는 뜻으로, 뭔가를 대신해서 처리하는 것 Proxy Class를 통해 대신 전달하는 형태로 설계되며, 실제 클라이언트는 Proxy로 부터 결과를 받음. Cache의 기능으로도 활용이 가능 SOLID중에서 개방폐쇄원칙(OCP)과 의존 역전 원칙(DIP)를 따른다. 개방 폐쇄의 원칙(OCP)이란 기존의 코드를 변경하지 않으면서, 기능을 추가할 수 있도록 설계가 되어야 한다는 원칙을 말한다 의존 역전 원칙(DIP)란 객체는 저수준 모듈보다 고수준 모듈에 의존해야한다. 고수준 모듈 : 인터페이스와 같은 객체의 형태나 추상적 개념 저수준 모듈 : 구현된 객체 고/저수준 모델의 정의는 위와 같다. 위 정의를 의존성 역전 원칙에 대입하면, 객체는 객체보다 인터페이스에 의존해야한다..
runnnerDevHong
'프록시' 태그의 글 목록