본문 바로가기
반응형

스프링49

[Spring] 스프링에서 AOP를 구현하는 방법 AOP를 구현하는 방법은 여러 가지 있지만, 스프링에서는 프락시(proxy)를 이용한다. 스프링에서 AOP를 구현하는 방법 · 프락시를 이용한 AOP는 아래 그림처럼 인터페이스를 구현한 프락시를 이용해서 Q 클래스가 호출한 메서드를 가로채서 어드바이스를 동작시킨다. · Q 클래스에는 R 인터페이스 타입의 인스턴스 변수가 있고, 인터페이스 R을 구현한 RImpl 클래스를 DI를 활용하여 이용한다. 이때, RImpl 클래스의 어느 메서드를 실행해도 어드바이스가 동작하게 설정됐다고 가정한다. - 스프링이라면 @Autowired 어노테이션이 붙는다. · DIxAOP 컨테이너는 R 인터페이스를 구현한 프락시 클래스의 인스턴스를 자동으로 생성, Q 클래스의 R 인터페이스 변수에 인젝션한다. - Q 클래스는 R 인터.. 2021. 11. 10.
[Spring Boot] AOP란? 스프링부트에서 AOP 사용하기 학습 목표 · AOP란? · AOP 관련 용어 · AOP vs OOP · Spring AOP vs AspectJ · 여러 가지 AOP 어드바이스 · 의존성 추가 · 스프링 부트에서 AOP 사용하기 - Before Advice - After Advice - Around Advice - After Returning Advice - After Throwing Advice · 스프링에서 AOP를 구현한 방법 AOP란? · Aspect Oriented Programming(관점 지향 프로그래밍)의 약어 · 여러 클래스에 나뉜 책임을 애스팩트라고 부르는 별도의 클래스에 캡슐화하는 접근 방식 · AOP의 필요성: - 일반적인 자바 애플리케이션은 웹 계층, 비즈니스 계층, 데이터 계층 등 여러 계층으로 응용 프로그램을.. 2021. 11. 10.
[F-lab] 12주차 정리 - 프로젝트 개발 2주차 인텔리제이에 xml 파일로 코딩 컨벤션 적용하기(네이버 코딩 컨벤션) https://scshim.tistory.com/434 다양한 종류의 로드밸런서와 다양한 로드밸런싱 알고리즘 https://scshim.tistory.com/391 AOP란? 스프링부트에서 AOP 사용하기 https://scshim.tistory.com/429 스프링에서 AOP를 구현하는 방법 https://scshim.tistory.com/430 Web API/Http API vs REST API https://scshim.tistory.com/426 REST란? REST API란? 일반적인 HTTP API가 REST API가 아닌 이유 https://scshim.tistory.com/435 2021. 11. 8.
[Spring Boot] 스프링 MVC 인터셉터란? 스프링 부트에서 사용하기 학습 목표 · 인터셉터란? · 의존성 추가 · 스프링 부트에서 인터셉터 사용하기 인터셉터란? · Spring Interceptor는 클라이언트 요청을 가로채서 처리하는 데 사용된다. · 스프링에서 요청이 컨트롤러로 전송되면 컨트롤러에서 처기되기 전, 컨트롤러에서 응답을 받은 후에 클라이언트에 응답을 보내기 전, 응답 완료 후(뷰가 렌더링 된 후)에 Interceptor를 통과한다. · 로깅 및 권한 인증 확인 등 반복적인 처리 코드를 피하는 데 도움을 줄 수 있다. 인터셉터는 org.springframework.web.servlet.HandlerInterceptor 인터페이스를 구현하거나, org.springframework.web.servlet.handler.HandlerInterceptorAdapte.. 2021. 11. 4.
[Junit] AssertJ란? 학습 목표 · AsserJ란? · AsserJ의 장점 · TODO: AssertJ의 단점 · 라이브러리 의존성 설정 · AssertJ 메소드 임포트 · 사용 방법 · 잘못된 사용 예시 AsserJ란? · 단언문(assertion)을 작성하기 위한 풍부한 인터페이스를 제공하는 자바 라이브러리로, 테스트 코드의 가독성을 향상시키고 테스트 유지 관리를 더 쉽게 만드는 것을 주요 목적으로 한다. · JUnit의 단언에 대한 표현력 부족을 보완한다. · spring-boot-starter-test에 기본적으로 포함된다. AssertJ의 장점 · 메서드 체이닝을 지원하여 깔끔하고 읽기 쉬운 테스트 코드를 작성 가능하다. · 타입별로 다양한 검증 메서드를 제공한다. - 개발자가 테스트를 하면서 필요하다고 상상할 수 .. 2021. 10. 30.
스프링 부트 AutoConfigure가 작동하는 원리 스프링 부트 AutoConfigure는 클래스 경로에 있는 의존성을 기반으로 스프링 애플리케이션을 자동으로 구성한다. 스프링 부트는 클래스 경로에서 클래스를 감지하고, AutoConfigure 매커니즘은 필요한 빈을 생성하고 연결한다. 이것은 스프링 부트의 가장 강력한 기능 중 하나이고, 대부분의 작업은 백그라운드에서 자동으로 발생한다. Auto-Configuration Report 스프링 부트의 application.properties 파일에서 debug=true를 설정하면, 스프링 부트 애플리케이션에 대한 Auto-Configureation Report를 활성화할 수 있다. 그리고 애플리케이션을 실행하면, 다음과 같은 출력을 확인할 수 있다. ============================ CON.. 2021. 10. 26.
반응형