Last updated
Last updated
λ λ€ λͺ¨λ Springμμ AOP κΈ°λ₯μ μ§μνκΈ° μν΄ μ¬μ©νλ νλ‘μ μμ± κΈ°λ²
λ°μ΄νΈμ½λλ₯Ό μ‘°μν΄ ν΄λμ€λ₯Ό μμ±
λ³Έ κ°μ²΄λ₯Ό μμνλ νλ‘μ κ°μ²΄λ₯Ό μμ±νκ³ λ©€λ² κ°μ²΄λ‘ νκ²(μ€μ κ°μ²΄)μ μμ
μμμΌλ‘ λμνκΈ° λλ¬Έμ, finalμ΄ λΆμ¬λμκ±°λ μ κ·Ό μ μ΄μκ° privateμΈ λ©μλμλ μ μ©ν μ μμ
리νλ μ μ μ΄μ©
μΈν°νμ΄μ€λ₯Ό ꡬννλ ν΄λμ€λ₯Ό μμ±νκ³ , λ©€λ² κ°μ²΄λ‘ νκ²(μ€μ κ°μ²΄)μ μμ
AOPκ° μ μ©λ λ©μλ νΈμΆ μ νλ‘μ κ°μ²΄μμ Advice λ‘μ§ μ or νλ‘ νκ² κ°μ²΄μ λ©μλλ₯Ό νΈμΆν΄μ ν΅μ¬ λ‘μ§μ΄ μνλ μ μλλ‘ ν¨
Springμμλ ν΄λμ€κ° νλ μ΄μμ μΈν°νμ΄μ€λ₯Ό ꡬννλ κ²½μ° μ΄ ν΄λμ€μ νλ‘μλ JDK dynamic proxy κΈ°λ²μΌλ‘ μμ±
ν΄λΉ μ€λ₯λ, μΈν°νμ΄μ€κ° μλ μΈν°νμ΄μ€μ ꡬν ν΄λμ€λ₯Ό μ£Όμ λ°κ³ μ ν λ λ°μ
ν΄λΉ μ€λ₯μμ μΈκΈν Beanμ΄ CGLIB κΈ°λ°μΌλ‘ μμ±λλλ‘ ν¨μΌλ‘μ¨ μ΄ μ€λ₯λ₯Ό ν΄κ²°ν μ μμ
Springμμλ proxyTargetClass
λΌλ μ΅μ
μ ν΅ν΄ μΈν°νμ΄μ€λ₯Ό ꡬννλ ν΄λμ€μ νλ‘μλ₯Ό μΈν°νμ΄μ€ ꡬν κΈ°λ°μΌλ‘ μμ±ν μ§ ν΄λμ€ μμ κΈ°λ°μΌλ‘ μμ±ν μ§λ₯Ό μ§μ ν μ μμ
false (default): μΈν°νμ΄μ€ κΈ°λ°
true: ν΄λμ€ μμ κΈ°λ°
μ΅κ·Όμ΄ λμ΄μμΌ AOP 곡λΆλ₯Ό νλλ°, AOPμ λν μ§μ μμ΄ μ΄ μ€λ₯λ₯Ό λ§λ¬μΌλ©΄ μ΄ν΄λ λͺ»νκ³ λ²μͺμ κ² κ°λ€.
μμ κΈ°λ³Έ κ°λ μ΄ μ€μνλ€β¦