[Spring] 18.Spring AOP(XML, AfterReturningAdvice)
·
🖥️ Backend/Spring
Advice 동작 시점설명Before비지니스 메서드 실행 전 동작After- AfterReturning : 비지니스 메서드가 성공적으로 리턴되면 동작- AfterThrowing : 비지니스 메서드 실행 중 예외가 발생하면 동작(마치 try~catch 블록에서 catch 블록에 해당)- After : 비지니스 메서드가 실행된 후, 무조건 실행(try~catch~finally 블록에서 finally 블록에 해당)AroundAround는 메서드 호출 자체를 가로채 비지니스 메서드 실행 전후에 처리할 로직을 삽입할 수 있음 // AfterReturningAdvice 인터페이스를 구현한 LogAfterReturningAdvice 클래스package spring.aop.advice;import java.lang.r..
[Spring] 17.Spring AOP(XML, BeforeAdvice)
·
🖥️ Backend/Spring
Advice 동작 시점설명Before비지니스 메서드 실행 전 동작After- AfterReturning : 비지니스 메서드가 성공적으로 리턴되면 동작- AfterThrowing : 비지니스 메서드 실행 중 예외가 발생하면 동작(마치 try~catch 블록에서 catch 블록에 해당)- After : 비지니스 메서드가 실행된 후, 무조건 실행(try~catch~finally 블록에서 finally 블록에 해당)AroundAround는 메서드 호출 자체를 가로채 비지니스 메서드 실행 전후에 처리할 로직을 삽입할 수 있음 // MethodBeforeAdvice를 구현한 LogBeforeAdvice 클래스package spring.aop.advice;import java.lang.reflect.Method;im..
[Spring] 16.Spring AOP(XML, AroundAdvice)
·
🖥️ Backend/Spring
스프링은 Cross-cutting Concern을 삽입하는 방식에 따라 BeforeAdvice, AfterRetrunningAdvice, AfterThrowingAdvice, AfterAdvice, AroundAdvice 이 5가지로 분류한다. 여기서 Advice는 횡단관심에 해당되는 공통 기능의 코드를 의미한다.Advice 동작 시점설명Before비지니스 메서드 실행 전 동작After- AfterReturning : 비지니스 메서드가 성공적으로 리턴되면 동작- AfterThrowing : 비지니스 메서드 실행 중 예외가 발생하면 동작(마치 try~catch 블록에서 catch 블록에 해당)- After : 비지니스 메서드가 실행된 후, 무조건 실행(try~catch~finally 블록에서 finally..
[Spring] 15.순수 Java AOP
·
🖥️ Backend/Spring
AOPAOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 프로그래밍의 한 패러다임으로, 애플리케이션의 공통 관심 사항(Cross-Cutting Concerns)을 모듈화하는 방법이다. AOP를 통해 로깅, 트랜잭션 관리, 보안 등과 같은 공통 기능을 애플리케이션의 다른 부분에 영향을 주지 않고 분리하여 관리할 수 있다. 다시 말하여 보통 비즈니스 웹 애플리케이션이라면 사업에 핵심적인 핵심 비즈니스 로직이 있고, 애플리케이션 전체를 관통하는 부가 기능 로직이 있다. 이를 횡단 관심사(cross-cutting concerns)라고 한다. (로깅, 보안, 트랜젝션) 횡단 관심사의 코드를 핵심 비즈니스 로직의 코드와 분리하여, 코드의 간결성을 높이고 변경에 유연함과 무한한 확장이..
[Spring] 14.@Configuration
·
🖥️ Backend/Spring
이제 xml 파일의 나머지 설정 부분을 자바 클래스로 변경해보자 // @Bean을 추가해보기 위해서 냄겨둠 설정 클래스 위에 `@Configuration`을 추가한다.  그리고 ``를 `@ComponentScan("spring.di.ui")`로 대체한다. 처럼 패키지의 경로가 2개 이상일떄는 배열로 표시해준다. @ComponentScan({spring.di.ui, spring.di.entity}) 또한 이전시간에 배운 @Bean 또한 Config 클래스에 추가한다. @Bean 어노테이션이 달린 메서드의 이름은 객체이기 때문에 동사형태가 아닌 명사형태로 지어야한다.@ComponentScan("spring.di.ui")@Configurationpublic class NewlecDIConf..
[Spring] 13.@Component
·
🖥️ Backend/Spring
@Component@Component란 개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 Annotation이다.위에서 설명한 스프링의 컴포넌트 스캔 (@ComponentScan) 기능에 의해 스캔될 때, 주어진 패키지 내에서 @Component 어노테이션이 적용된 클래스를 식별하고, 그러한 클래스의 빈을 생성하여 ApplicationContext에 등록한다. 이제 아래의 xml에서 객체를 생성하는 부분까지 @Component로 변경해보자 // @Component로 대체 예정 // // 이전 시간에 @Autowired로 대체 우선 xml파일에 를 추가해준다. //spring.di.ui패키지 안에 @Component를 스캔해라////@Component로 생성할 객체가 여러개면 base-p..
Developer Quarterly
DQ