0111

DDUBINI·2021년 1월 11일
0
post-thumbnail

pop 절차지향
: 가장 먼저나옴, 어플리케이션의 규모가 작으면 상관이 없다. 하지만 규모가 커지면 중복되는 코드가 많아진다. -> 모듈화가 필요해졌다. 이때 객체지향을 할건지.. 함수지향을 할건지 택한다.

aop 관점지향
:
oop 객체지향
fop functional 지향

Proxy

aop

관심사 분리하기

  • 핵심관심사(core concern) : target
  • 부가관심사(cross cutting concern) : advice ex)security logging

장점

  • 자기 로직만 고민해도 된다.
  • 중복 제거
  • 가독성 좋아짐

advisor

PROPAGATION

MANDATORY : 필수관계 (반드시 트랜잭션을 관리해야하는데 다른 곳에 의존하고있다)
NESTED : 트랜잭션 중첩 (트랜잭션 단독으로 걸릴 수 없다)
NEVER : 절대로 트랜잭션 관리 안한다.
NOT_SUPPORTED : 웬만하면 트랜잭션 관리 안한다.
REQUIRED : 트랜잭션 관리한다. 어디서 새로운 트랜잭션이 실행된다는 건 언급 X
REQUIRED NEW : 반드시 새로운 트랜잭션을 만들어서 관리해야한다. MANDATORY랑 반대

aop의 핵심

프록시 생성기술

트랜잭션 문제나오면 aop랑 연관지어서 설명하기


service를 대상으로 소요시간 체크
어떤 파라미터, 어떤 리턴값이 오는지 체크

spring security

@PreAuthorize("hasRole('ROLE_ADMIN')")
admin계정만 접근가능하게 하는 어노테이션

스프링 실행순서
먼저 요청이 오면 web.xml이 실행된다.
DispatcherServlet이 요청을 가로채고
servlet-context.xml을 실행시킨다.
servlet-context에서 context:component-scan으로 해당 위치의 어노테이션을 읽어서 bean으로 등록한다.
annotation-drive는 handerMapping adapter역할
component-scan을 통해서 스캔된 bean 중에서 해당요청과 알맞은 controller를 찾아서 연결시켜준다.
우리꺼 같은경우
/로 매핑된 controller를 찾아간다.
그리고 다시 servlet-context로 돌아가서
controller에서 반환된 view와 model로 view로 접근할수 있는 경로를 만든다.
그다음 internalResourceViewResolver를 통해 맞는 view르 찾는다.

profile
ㅎㅇㅎㅇ

0개의 댓글