Supersett
개발자의 하루
Supersett
Blockchain Dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프론트
    • 회사생활
    • 블록체인
    • 프로젝트
      • 창업 프로젝트 (DRF + AWS)
      • Spring 프로젝트
    • [중앙대]멋쟁이 사자처럼
    • 기술서적
    • Problem Solving
      • 알고리즘
    • 일기장
      • 하루 정리
      • 삽질 일기
      • 조급할 때 눌러보기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 멋쟁이사자처럼 중앙대
  • DEPROMEET
  • 취업준비
  • 멋쟁이 사자처럼
  • Multichain API
  • 글리치해커톤
  • 멋쟁이 사자처럼 면접
  • 프로젝트
  • 구글소셜로그인
  • 블록체인 서버설계
  • 국비지원
  • 자바스크립트
  • 니어프로토콜
  • java
  • 초보개발자
  • 자바
  • 면접준비
  • 국비
  • 디프만16기
  • 컴퓨터학원
  • 국비교육
  • 멋사 중앙대
  • Near Explorer
  • Luniverse
  • 해커톤
  • Near Scan
  • 멋쟁이 사자처럼 서류
  • 신입개발자
  • 블록체인정보가공
  • 비트코인

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Supersett

개발자의 하루

220311 [금] AOP
일기장/하루 정리

220311 [금] AOP

2022. 3. 11. 10:42

**싱글톤 디자인패턴을 적용한 클래스 -> 상속할 수 없다. (생성자가 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
    '일기장/하루 정리' 카테고리의 다른 글
    • 220315 [화] Annotation MVC 설정
    • 220314 [월] HTTP 상태코드 , SpringDAO, 동기
    • 220310 [목] 검색 동적 Query 완성, Mapper 입력
    • 220309 [수] MySql , query 짜기
    Supersett
    Supersett
    하루를 돌아보고 공부한 티를 내기 위해 블로그를 만들었습니다.

    티스토리툴바