: λΆκ°μ μΈ κ³΅ν΅μ½λλ€μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬
ν‘λ¨ κ΄μ¬(Crosscutting Concerns) : λ©μλλ§λ€ 곡ν΅μΌλ‘ λ±μ₯νλ λ‘κΉ μ΄λ μμΈ, νΈλμμ μ²λ¦¬ κ°μ μ½λλ€μ
ν΅μ¬ κ΄μ¬(Core Concerns) : μ¬μ©μμ μμ²μ λ°λΌ μ€μ λ‘ μνλλ ν΅μ¬ λΉμ¦λμ€ λ‘μ§
pom.xml μΆκ°
applicationContext.xml μΆκ°
μ‘°μΈν¬μΈνΈ(JoinPoint)
:ν΄λΌμ΄μΈνΈκ° νΈμΆνλ λͺ¨λ λΉμ¦λμ€ λ©μλ.
ν¬μΈνΈμ»·(PointCut)
:μ΄λμ κ³΅ν΅ κ΄μ¬ κΈ°λ₯μ μ½μ
ν μ§ μ μ
μ΄λλ°μ΄μ€(Advice)
:μΈμ κ³΅ν΅ κ΄μ¬ κΈ°λ₯μ ν΅μ¬ λ‘μ§μ μ μ©ν μ§ μ μ
μλΉ(Weaving)
:μ΄λλ°μ΄μ€λ₯Ό ν΅μ¬ λ‘μ§ μ½λμ μ μ©νλ κ². μ¦ κ³΅ν΅ μ½λλ₯Ό ν΅μ¬ λ‘μ§ μ½λμ μ½μ
νλ κ²μ΄λ€.
μ μ€ν©νΈ(Aspect) λλ μ΄λλ°μ΄μ (Advisor)
:μ μ€ν©νΈλ ν¬μΈνΈμ»·κ³Ό μ΄λλ°μ΄μ€μ κ²°ν©.
μ΄λ€ ν¬μΈνΈμ»· λ©μλμ λν΄μ μ΄λ€ μ΄λλ°μ΄μ€ λ©μλλ₯Ό μ€νν μ§ κ²°μ νλ€.
Before
: λΉμ¦λμ€ λ©μλ μ€ν μ λμ
After
:
Around
: λ©μλ νΈμΆ μ체λ₯Ό κ°λ‘μ± λΉμ¦λμ€ λ©μλ μ€ν μ νμ μ²λ¦¬ν λ‘μ§ μ½μ
κ°λ₯
*
: λͺ¨λ 리ν΄νμ
νμ©
void
: 리ν΄νμ
μ΄ voidμΈ λ©μλ μ ν
!void
: 리ν΄νμ
μ΄ voidκ° μλ λ©μλ μ ν
com.springbook.biz
: μ ννκ² com.springbook.bizμ ν
com.springbook.biz..
: com.springbook.biz ν¨ν€μ§λ‘ μμνλ λͺ¨λ ν¨ν€μ§ μ ν
com..springbook..impl
: com.springbook ν¨ν€μ§λ‘ μμνλ©΄μ λ§μ§λ§ ν¨ν€μ§ μ΄λ¦μ΄ implλ‘ λλλ ν¨ν€μ§ μ ν