**싱글톤 디자인패턴을 적용한 클래스 -> 상속할 수 없다. (생성자가 private이라..)
스프링
- oop의 기본원칙을 지켜가면서 프로그램을 만들 수 있도록 환경이 만들어졌다.
- 너무많은 효율성을 따졌다가 놓쳤던 원칙(ex 보안성)들을 지켜가며 프로그램을 만들기위해 스프링이 나오게 됨.
- 추상화, 캡슐화를 통해 모듈화 프로그램을 만든다.
- 객체지향 -> 모듈 프로그램(클래스)
- 모듈화 - 단점 : 중복된 코드
- 모듈클래스 (Advice) : 코드를 joinPoint에 pointCut해주어 삽입한다. 코드를 분리시켜준다.
**Around Advice 메소드를 제외한 나머지 Advice 메소드는 반환형을 void로 작성하고, 매개변수를 작성하지 않거나 JoinPoint 클래스를 자료형으로하는 매개변수를 선언할 수 있다.
JoinPoint : 타겟메소드의 정보를 저장하기 위한 객체
-> 스프링 컨테이너가 advice의 메소드를 호출할 때 타겟메소드의 정보(joinpoint 객체)를 매개변수에 자동 저장한다.
-> advice메소드(횡단관심모듈)에서 타겟메소드의 정보가 필요한 경우 joinpoint 매개변수 작성
JoinPoint.getTarget() : 타겟메소드를 호출하는 Spring bean 객체를 반환하는 메소드
-> 타겟 메소드가 선언된 클래스의 객체를 object 타입으로 반환한다.
Object.getClass() : 객체에 대한 클래스 정보(Clazz)를 반환하는 메소드
Class.getName() : Class 객체(Clazz) 의 클래스명(패키지포함)을 반환하는 메소드.
Class.getSimpleName() : Class 객체(Clazz) 의 클래스명(패키지 미포함)을 반환하는 메소드.
JoinPoint.getSigniture() : 타겟메소드(Signiture 객체)의 정보를 반환하는 메소드
Around Advice
public Object display(ProceedingJoinPoint joinPoint) throws Throwable{
Object object=joinPoint.proceed();
return object;
}
around advice 메소드는 반환형을 (Object 타입 or void)으로 작성하고 ProceedingJoinPoint인터페이스를 자료형으로 작성된 매개변수를 반드시 선언해야 한다.
-> around advice 메소드는 타겟메소드의 반환값을 제공받아 반환하기 위해 Object로 반환한다. (타겟메소드의 반환형을 알면 바꿔도 상관없는데 일단 뭔지 모르니까 object로 설정했어요)
ProceedingJoinPoint.proceed() : 타겟메소드를 호출하는 메소드
-> 타겟메소드 호출시 반환되는 결과값을 제공받아 저장 가능
-> 프로그램 실행하고 발생되는 모든 문제점을 저장한 객체(throwable 객체) 발생
메일전송기능 제공하는 클래스
smtp(send message transmission protocol)
pop3
//메일전송기능을 제공하는 클래스
- 메일을 전송하는 javamailsender객체를 저장하는 필드
'일기장 > 하루 정리' 카테고리의 다른 글
220315 [화] Annotation MVC 설정 (0) | 2022.03.15 |
---|---|
220314 [월] HTTP 상태코드 , SpringDAO, 동기 (0) | 2022.03.14 |
220310 [목] 검색 동적 Query 완성, Mapper 입력 (0) | 2022.03.10 |
220309 [수] MySql , query 짜기 (0) | 2022.03.09 |
220308 [화] Annotation , AOP (0) | 2022.03.08 |