β Spring AOP, Interceptor, Filterλ λͺ¨λ κ΄μ μ§ν₯μ μΈ μν μ νμ§λ§, AOPμ μΌμ’ μ μλλ€.
πΈ μ΄λ€μ 곡ν΅μ μΌλ‘ βν΅μ¬ λ‘μ§ μ νμ λΆκ° κΈ°λ₯βμ μννμ§λ§,
- κΈ°μ μ ꡬν λ°©μλ λ€λ₯΄κ³ ,
- μ μ© μμ λ λ€λ₯΄κ³ ,
- μ μ© λμλ λ€λ₯΄λ€.
π λΉκ΅ μμ½
κ΅¬λΆ | Filter | Interceptor | AOP (Aspect) |
---|---|---|---|
μμ | Servlet μ€ν (javax.servlet) | Spring Web MVC | Spring AOP |
μ μ© λμ | HTTP μμ²/μλ΅ μ 체 | 컨νΈλ‘€λ¬ νΈμΆ μ /ν | λ©μλ μ€ν μ /ν (λΉ λμ) |
μ¬μ© λͺ©μ | μΈμ¦, μΈμ½λ©, λ‘κΉ λ± | κΆν 체ν¬, μΈμ κ²μ¬ λ± | νΈλμμ , λ‘κΉ , μ±λ₯ μΈ‘μ λ± |
μ μΈ μμΉ | @WebFilter , FilterRegistrationBean | HandlerInterceptor ꡬν체 | @Aspect + @Component |
λμ μμ | DispatcherServlet μ΄μ | DispatcherServlet μ΄ν | μ€μ λ©μλ μ€ν μ§μ /μ§ν |
DI κ°λ₯ μ¬λΆ | β (Bean μ£Όμ μ΄λ €μ) | β |
π κ΄κ³ μμ½
- Filterμ **Interceptor**λ μ€νλ§ AOPκ° λ±μ₯νκΈ° μ΄μ λΆν° μ‘΄μ¬ν κΈ°μ .
- μ΄λ€μ AOPμ κ°λ (κ΄μ¬μ¬ λΆλ¦¬)μ ꡬννλ λ€λ₯Έ λ°©λ²μ΄μ§, Spring AOP μ체λ μλ.
- Spring AOPλ νλ‘μ κΈ°λ°μΌλ‘ λμνλ©°, μ£Όλ‘ Service, Repository λ±μ Bean λ©μλμ μ μ©ν¨.
π‘ λΉμ λ‘ μ½κ² μ 리νμλ©΄:
- Filter: λλ¬Έ μμ μλ 보μ κ²μ΄νΈ (HTTP λ 벨)
- Interceptor: μ§ μ νκ΄λ¬Έμμ λꡬ μλμ§ νμΈ (Controller λ 벨)
- aop: λ°© μμμ μ§μ£ΌμΈμ νλμ κ°μ (Business Logic λ 벨)