[Spring] 필터란 무엇인가?

JOY·2022년 2월 7일
0

[Spring]

목록 보기
2/18
post-thumbnail

📌 필터란 무엇인가?


1. 스프링은 엄청나게 많은 필터를 가지고 있다.

📍 필터를 통해 권한 확인

  • 톰캣의 필터 : 필터(Filter)
  • 스프링컨테이너의 필터 : 인터셉터(Interceptor)
  • 스프링에서 필터 사용하는 방법
    • 스프링 자체가 기본적으로 가지고 있는 필터 사용
    • 사용되지 않고있는 필터 사용
    • 직접 필터 생성하여 사용

2. 스프링은 엄청나게 많은 어노테이션을 가지고 있다.

📍 어노테이션 @
어노테이션 ( 주석 + 힌트 )

✏️ 예시
@Component
@Autowired
@Bean
@Controller

👆 컴파일러가 체킹할 수 있도록 힌트를 주는 주석
    스프링에서는 어노테이션을 이용하여 객체 생성

/// 주석을 달아봅시다
public class A{}

👆 위의 주석은 컴파일러가 무시하는 주석

@Component : 클래스 메모리에 로딩

  • 스프링 사용 예시 (IoC)
@Component
Class A{}

스프링이 해당 클래스(Class A)를 스캔하여 heap 메모리 공간에 A 클래스를 로딩

@Autowired : 로딩된 객체를 해당 변수에 넣어라

  • 스프링 사용 예시 (IoC)
    위의 A 클래스를 다른 클래스에서 사용해보자
@Autowired
Class B{
  A a;
  // A a = new A();  
  // 이 방식은 사용 시 새로운 heap 메모리 공간에 다른 A를 로딩 하는 것
}

스프링이 IoC를 통해 메모리에서 동일한 타입의 객체를 읽어들임 👉 DI (Dependency Injection)


📍 리플렉션 (분석하는 기법)

스프링이 B 클래스를 스캔할 때 B 클래스 내부를 분석하는 기법 ( runtime 시 분석 )
1. 리플렉션을 통해 특정 클래스 내부에 있는 메서드, 필드, 어노테이션등을 체킹 가능
2. 체킹 후 취해야할 행동을 설정할 수 있음

profile
Just Do IT ------- 🏃‍♀️

0개의 댓글