0. 이 포스트는 Spring : AOP with Java Config 시리즈의 연속이다. 1. @Around는 @Before와 @After를 같이 사용하는 것과 같다. 하지만 좀 더 섬세한 컨트롤이 가능하다. 1-1 @Around advice는 Proceeding Join Point를 받을 수 있다. 1-2 Proceeding Join Point는 타겟 메소드의 직접 호출 할 수 있다. 2. Use cases 2-1 로깅, 보안, 감사 등에 사용 2-2 데이터의 전처리, 후처리 2-3 성능 측정 2-4 예외 처리 3. 메소드의 실행시간을 측정하는 @Around advice 예제 3-1 설정 클래스는 @Configuration, @EnableAspectJAutoProxy, @ComponentScan이 설..
0. 이 포스트는 Spring : AOP with Java Config의 연속이다. 1. @After advice는 타겟 메소드에서 Exception의 발생여부과 관계없이 실행된다. 1-1 실행시점은 @AfterReturning 이나 @AfterThrowing advice가 실행되기 직전에 실행된다. 1-2 @After advice는 에러에 대한 접근이 불가능하다. 1-2-1 예외 관련 처리가 필요하면 @AfterThrowing을 추가로 구현해야 한다. 2. 사용 용도는 2-1 예외 로그를 남기거나 감사를 업무수행 2-2 결과 관계없이 처리해야 하는 리소스 해제 같은 로직 수행 3. @After는 @AfterReturning, @AfterThrowing과 같이 실행해야 동작을 확인할 수 있어 추가된 부분..
1. 이 포스트는 Spring : AOP with Java Config 시리즈의 연속이다. 2. @Afterthrowing 타겟 메소드에서 Exception이 발생한 경우에만 실행된다. 3. 주된 Use case 들 3-1 예외에 대한 로그처리 3-2 예외상황에 대한 감사(Audit) 처리 3-3 예외가 발생한 경우 이메일이나 SMS를 통한 알람 4. 아래는 boolean 변수를 사용하여 Exception을 발생시키는 예제다. 4-1 App.java 클래스에서 triggerError변수가 true일 경우 Exception이 발생한다. 4-1-1 이 경우 @AfterThrowing advice가 실행된다. 4-2 triggerError가 false일 경우 정상적으로 수행되고 @AfterReturning a..
0. 이 포스트는 Spring : AOP With Java Config 의 연속이다. 1. 타겟 메소드를 정상적으로 실행완료 후 @AfterReturning advice에서 결과값을 수정하는 예제이다. 2. @AfterReturning annotation에 몇 가지 property를 설정할 수 있다. 2-1 pointcut은 어떤 @Before의 value와 같이 pointcut expression을 지정할 수 있다. 2-1-1 아래 소스코드에서 지정한 point cut은 정확히 AccountDAO의 findAccounts 메소드를 지정하고 있다. 2-2 returning은 advice 메소드의 두 번째 인자값의 이름으로 타겟 메소드의 반환 값을 받는다. 2-2-1 아래 소스에서 AccountDAO fi..
0. 이 포스트는 Spring : AOP with Java Config 시리즈의 연속이다. 1. @AfterReturning은 타겟 메소드가 성공적으로 실행된 후 실행하게 된다. 예외가 발생하면 실행되지 않는다. 2. 실제 사용하는 상황들(@Before advice와 거의 동일하고 쌍으로 사용되는 경우가 많다.) 2-1 로깅, 보안처리, 트렌젝션 처리에 사용된다. 2-2 감사를 위한 logging에 사용될 수 있다. 사용자, 사용 메소드, 사용시점, 사용한 지점 등을 남길 수 있다. 2-3 호출자에게 값을 반환하기 전에 데이터 처리가 필요한 경우에 사용한다. 2-3-1 데이터의 포멧을 설정하거나 데이터를 추가 가공할 경우에 사용된다. 2-3-2 가공하더라도 반환 객체는 동일한 타입이어야 한다. 3. 예제..
1. 이 포스트는 Spring : AOP with Java Config 시리즈의 연속이다. 2. 종종 어떤 메소드를 실행 전후에 해당 메소드의 parameter에 접근해 데이터를 참조하거나 수정할 필요가 있다. 3. Apect 클래스에서 method argument에 접근하는 방법은 java reflect를 이용한 JoinPoint Aspectj 클래스를 사용한다. 3-1 이 예제는 복잡함을 줄이기 위해 @Order를 설정한 직전 포스트의 Aspect클래스를 사용하지 않는다. 3-2 JoinPoint클래스를 advice 메소드의 parameter로 설정하여 호출 대상 메소드의 정보를 받아온다. 3-2-1 Java reflect를 사용하기 때문에 해당 클래스에 관련 메타데이터 정보를 JoinPoint에서 ..
0. 이 포스트는 Spring : AOP with Java Config 의 연속이다. 1. Aspect 클래스 내의 Advice의 실행순서는 정의된 것이 없다. 그냥 랜덤이다. 2. Advice의 순서를 관리하고 싶은 경우에는 advice마다 별도의 Aspect 클래스를 만들어 순서를 정할 수 있다. 2-1 @Order annotation을 사용하여 순서를 정할 수 있다. 2-2 @Order(숫자) 형식으로 순서를 정할 수 있는데 숫자가 낮을 수록 우선순위가 높다. 2-2-1 숫자는 -1, -100같은 음수도 가능하다. 2-2-2 순차적으로 사용할 필요가 없다. 1, 3, 100 이런 식으로 마음 대로 설정할 수 있다. 2-3 같은 숫자가 할당 되는 경우는 그 Aspect 클래스들만 랜덤으로 실행된다. ..
1. 이 포스트는 Spring AOP with Java Config - @Pointcut annotation의 연속이다. 2. point cut의 조합은 2-1 하나의 advice 메소드에 여러 개의 point cut expression을 적용하거나 2-2 특정한 조건에서만 실행하도록 메소드를 정의할 수 있다. 2-3 조합에는 &&, ||, ! 논리 연산자를 사용할 수 있다. 2-4 논리 연산자의 조합은 if statement처럼 처리되며 true일 경우만 실행대상이 된다. // and 연산 @Before("expressionOne() && expressionTwo()") // or 연산 @Before("expressionOne() || expressionTwo()") // and와 !연산 @Before..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- MYSQL
- form
- 설정
- crud
- jsp
- 상속
- 하이버네이트
- mapping
- Many-To-Many
- 자바
- Spring Security
- 매핑
- Spring
- WebMvc
- 설정하기
- 스프링
- one-to-one
- hibernate
- Security
- 로그인
- XML
- login
- Angular
- one-to-many
- spring boot
- 스프링부트
- RestTemplate
- 외부파일
- Validation
- Rest