- Application ν΄λμ€ λλ κ΄λ ¨ Configuration ν΄λμ€μ
@EnableAsync
μ΄λ Έν μ΄μ μ μΆκ° - λ³λ μ€λ λμμ λΉλκΈ°λ‘ μ€ννκ³ μ νλ λ©μλμ
@Async
μ΄λ Έν μ΄μ μ μΆκ°
- proxyλ₯Ό μ΄μ©
- μ¦, @Asyncκ° λ¬λ¦° λ©μλλ νλ‘μ κ°μ²΄λ₯Ό ν΅ν΄
μ¬μ©ν μ€λ λ μ μ λ° μμ ν λΉ
μ΄λΌλν‘λ¨ κ΄μ¬μ¬ λ‘μ§
μ΄ μνλ νμ νΈμΆλ¨ - λ°λΌμ,
μ κ·Ό μ μ΄μκ° public
μ΄μ΄μΌ νλ©°self-invocation
μ΄ λΆκ°λ₯
- λ©μλμ λ°ν κ²°κ³Όκ° μ΄λκ°μμ μ°μ΄μ§ μμ λμλ μ무κ²λ λ°ννμ§ μλλ‘ μ²λ¦¬νλ©΄ λ¨
- λ°ν κ²°κ³Όλ₯Ό ν΅ν΄ μΆκ°μ μΈ μ²λ¦¬κ° μ΄λ£¨μ΄μ ΈμΌ νλ κ²½μ° μμ 2κ°μ§λ₯Ό λ°νν μ μμ
- λ μΈλ°ν 컨νΈλ‘€μ μνκ³ , Java 8 μ΄μμ λ²μ μ μ΄λ€λ©΄ νμ μͺ½μ΄ μ’ λ λμ μ νμ΄λΌ λ³Ό μ μμ
- κΈ°λ³Έκ°μΌλ‘ μ€μ νλ©΄
SimpleAsyncTaskExecutor
λ₯Ό μ¬μ©- λΉλκΈ° λ‘μ§μ΄ νΈμΆλ λλ§λ€ μλ‘μ΄ μ€λ λλ₯Ό μμ±νλ Executor
- λ§€λ² μλ‘μ΄ μ€λ λλ₯Ό μμ±νλ κ²μ λ€μκ³Ό κ°μ λ¬Έμ λ₯Ό κ°μ§
- λ무 λ§μ μ€λ λκ° μμ±λ μ μμ - 100λ§ κ° μμ²μ΄ μ€λ©΄ 100λ§ κ° μ€λ λλ₯Ό λ§λλλ°?
- λ§€λ² μ€λ λλ₯Ό μλ‘ λ§λλ κ²μ μ€λ λ μμ± λΉμ©μ κ³Όλνκ² μ§λΆνλ μΌ
- λ°λΌμ, 컀μ€ν
ThreadPoolTaskExecutor
λ₯Ό λ§λ€μ΄ μ μ ν κ°μμ μ€λ λ νμ μ΄μ©ν κ²μ κΆμ₯- λλ μ΄ μ»€μ€ν
Executorλ₯Ό
AsyncConfig
μ λͺ¨μλκ³ , ν΄λΉ Configμ@EnableAsync
λ₯Ό λΆμ¬λλ λ°©μμ μ¬μ© μ€
- λλ μ΄ μ»€μ€ν
Executorλ₯Ό
- λΉμ°ν λ§μ΄μ§λ§, λΉλκΈ° λ‘μ§μ νΈμΆ μμ λΆν° λ³λ μ€λ λλ‘ λΆλ¦¬λλ―λ‘
μμΈκ° νΈμΆμμκ² μ νλμ§ μμ
- λ°νκ°μ μ½λ°±μΌλ‘ μ λ¬λ°λ λ©μλμμλ μμΈμ²λ¦¬κ° μ΄λ ΅μ§ μμ§λ§, λ°νκ°μ΄ voidμΈ κ²½μ°
AsyncUncaughtExceptionHandler
λ₯Ό ꡬννλ ν΄λμ€μμ λ³λμ μμΈ νΈλ€λ§μ ν΄ μ€μΌ ν¨