01. 💖Spring Bean Configuration File[07-5_aopAnnotation.xml]bean , context , aop 기능까지 모두 이용하므로 3개 다 설정해서 생성해야함!!" xmlns:xsi="" xmlns:aop="" xmlns:context="" xsi:schemaLocation=" "> AOP 관련 Annotation을 사용하여 핵심관심코드에 횡단관심코드를 삽입하여 실행되도록 설정 --> 02. [핵심관심모듈]AopAnnotationBean.javapackage xyz.itwill07.aop;import org.springframework.stereotype.Component;//Component 어노테이션에 의해 Spring Bean..
framework/spring AOP(관점지향)
01. 라이브러리 빌드처리pom.xml 변경메일 보내는 프로그램 ex) 결제 인증을 메일로 받아서 하기 02. [핵심관심모듈]EmailSendBean.java package xyz.itwill07.aop;import javax.mail.MessagingException;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import org.springframework.mail.javamail.JavaMailSender;import lombok.Setter;//Java Mail 기능을 구현하기 위해서는 spring-context-s..
01. [핵심관심모듈]ExecutionTimeBeanpackage xyz.itwill07.aop;public class ExecutionTimeBean { //1. public void one() { //System.currentTimeMillis() : 시스템의 현재 날짜와 시간에 대한 타임스탬프를 반환하는 메소드 //타임스탬프(TimeStamp) : 날짜와 시간을 정수값으로 변환한 값 - 날짜와 시간에 대한 연산이 목적 //long startTime = System.currentTimeMillis(); long count=0; for(long i=1; i02. [횡단관심모듈] : Advice클래스ExecutionTimeAdvicepackage xyz.itwill07.aop;import org..
일반적으로 특별한 경우가 아니면, 매개변수는 잘 만들지 않음핵심관심모듈이 가진 데이타에 대한 처리의 부가적인 기능을 하고 싶을 때 매개변수 사용함 01. [핵심관심모듈] DAO클래스&Service클래스JoinPointBean핵심관심모듈이 가진 메소드들은 개발자들에 의해 호출하므로 아무렇게나 작성 가능package xyz.itwill07.aop;//핵심관심모듈public class JoinPointBean { public void add() { System.out.println("### JoinPointBean 클래스의 add() 메소드 호출 ###"); } public void modify(int num, String name) { System.out.println("### JoinPointBean..
01. DTO클래스Student 클래스package xyz.itwill07.aop;import lombok.Data;@Datapublic class Student { private int num; private String name;}02. [핵심관심모듈] : DAO클래스 - 포함(의존)관계 : 부(부모) StudentDAO 인터페이스package xyz.itwill07.aop;import java.util.List;public interface StudentDAO { int insertStudent(Student student); Student selectStudent(int num); List studentList();}(자식) StudentDAOImpl 클래스package xyz.itwill07.a..
01. Spring AOP (Aspect Oriented Programming)관점 지향 프로그래밍AspectJ 컴파일러에 의해 프로그램 실행 시 핵심관심코드와 횡단관심코드가 결합(Weaving)되어 동작되기 위한 기능 제공Spring AOP 기능을 사용하기 위해서는 aspectjrt(runtime - 실행할 때만 사용) 라이브러리와 aspectjweaver(결과물을 합쳐줌 - weaving ) 라이브러리가 프로젝트에 필드 처리되어 있어야 함메이븐 사용 : pom.xml 수정 필요! 02. 직접 AOP 만들기핵심관심모듈에 만들 명령 : 데이타 처리 - Service클래스 내 DAO클래스의 메소드 호출할 것임횡단관심모듈에 만들 명령 : 로그 처리 - Advice클래스 내 기록처리 메소드 호출할 것임 (단,..
01. AOP의 용어JoinPoint : 언제 합쳐져서 실행할까?타켓메소드의 명령 실행 전? - before타겟메소드의 명령 실행후에 예외와 상관없이 무조건? after (일종의finally)타겟메소드의 명령이 정상적으로 실행된 후? - after-returning (일종의 try)타겟메소드의 명령 실행시 예외가 발생된 경우? - after-throwing (일종의catch)타겟메소드의 명령 실행 전과 후 둘다? - aroundPointcut : 어떤 클래스의 어떤 메소드에 널을까?Advice 클래스 : 횡단코드만 작성된 클래스Weaving : 핵심관심코드 + 횡단관심코드 합치는 작업Aspect : 합친 결과물Introduction : … 02. SpringAOP 변화스프링1 : 위에처럼 proxy 클..
01. AOP의 개요절차지향대형 프로그램만들 시 매우 많은 함수들을 사용하므로 점점 관리하기가 어려워져서,함수를 통해 명령들을 모아 모듈화 하여 이용했음 (ex. C언어)단점: 함수는 자료형이 아니므로 배포가 불가능함객체지향(OOP)함수(메소드)뿐만 아니라 필요한 변수(필드)까지 모두 모듈화하여 사용함이를 클래스라 부름 : 클래스 자료형 = 필드 + 메소드 (ex. C++언어가 나옴)또한 모듈화된 자료형으로 만들었기 때문에 배포 가능원하는 기능들을 가져가다가 손쉽게 이용 가능그러나 너무 강력한 모듈화..프로그램 만들 시 공통된 코드들(ex. 보안코드)이 반복되어 나오는데, 자바는 파일들을 가져다 삽입하는 기술이 없음JSP에서 제공해준 include(JSP에서 만든 기술 중 하나) 액션 태그는 자바가 아님..