π[Spring] @Controller
μ λν
μ΄μ
μ¬μ©μ μΌμ΄λλ μΌ.
1οΈβ£ μ€νλ§ νλ μμν¬μμ @Controller
μ λ
Έν
μ΄μ
μ¬μ©μ μ΄λ€ μΌμ΄ μΌμ΄λ κΉμ?
- μ€νλ§ νλ μμν¬μμ
@Controller
μ λ Έν μ΄μ μ μ¬μ©νλ©΄, ν΄λΉ ν΄λμ€κ° μ€νλ§ MVCμ μΉ μ»¨νΈλ‘€λ¬λ‘ λμνλλ‘ μ€μ λ©λλ€. -
@Controller
λ κΈ°λ³Έμ μΌλ‘ μΉ μμ²μ μ²λ¦¬νκ³ , μ μ ν μλ΅μ μμ±νλ μν μ λ΄λΉνλ ν΄λμ€λ₯Ό μ μν λ μ¬μ©λ©λλ€.
@Controller
μ λ
Έν
μ΄μ
μ μ¬μ©νλ©΄ λ€μκ³Ό κ°μ μΌλ€μ΄ λ²μ΄μ§λλ€.
-
1. μ€νλ§ λΉμΌλ‘ λ±λ‘.
-
@Controller
μ λ Έν μ΄μ μ΄ μ μ©λ ν΄λμ€λ μ€νλ§μ μ»΄ν¬λνΈ μ€μΊ λ©μ»€λμ¦μ μν΄ μλμΌλ‘ μ€νλ§ μ»¨ν μ€νΈμ λΉμΌλ‘ λ±λ‘λ©λλ€.- μ΄λ
@Component
μ μ μ¬νκ² λμνλ©°, μ€νλ§μ΄ μ΄ ν΄λμ€λ₯Ό κ΄λ¦¬νλλ‘ λ§λλλ€.
- μ΄λ
-
-
2. μμ² μ²λ¦¬ λ©μλ 맀ν.
-
@Controller
κ° λ¬λ¦° ν΄λμ€ λ΄μ λ©μλλ€μ@RequestMapping
,@GetMapping
,@PostMapping
λ±κ³Ό κ°μ μμ² λ§€ν μ λ Έν μ΄μ μ ν΅ν΄ νΉμ HTTP μμ²μ μ²λ¦¬νλ λ©μλλ‘ λ§€νλ μ μμ΅λλ€.- μ΄λ¬ν 맀νμ ν΅ν΄ νΉμ URLλ‘ λ€μ΄μ€λ μμ²μ΄ μ΄λ€ λ©μλμ μν΄ μ²λ¦¬λ μ§ κ²°μ λ©λλ€.
-
-
3. λͺ¨λΈκ³Ό λ·°.
-
@Controller
λ μ£Όλ‘ λͺ¨λΈκ³Ό λ·°λ₯Ό μ²λ¦¬ν©λλ€.- μμ²μ΄ 컨νΈλ‘€λ¬μ λλ¬νλ©΄, 컨νΈλ‘€λ¬λ νμν λ°μ΄ν°λ₯Ό λͺ¨λΈμ λ΄κ³ , μ μ ν λ·°(μ: JSP, Thymeleaf ν
νλ¦Ώ)λ₯Ό λ°ννμ¬ μ¬μ©μμκ² μλ΅μ 보λ
λλ€.
- μ€νλ§μ μ΄ μμ μ μ½κ² ν μ μλλ‘ λ€μν κΈ°λ₯μ μ 곡ν©λλ€.
- μμ²μ΄ 컨νΈλ‘€λ¬μ λλ¬νλ©΄, 컨νΈλ‘€λ¬λ νμν λ°μ΄ν°λ₯Ό λͺ¨λΈμ λ΄κ³ , μ μ ν λ·°(μ: JSP, Thymeleaf ν
νλ¦Ώ)λ₯Ό λ°ννμ¬ μ¬μ©μμκ² μλ΅μ 보λ
λλ€.
-
-
4. λΉμ¦λμ€ λ‘μ§κ³Ό μλΉμ€ κ³μΈ΅.
- 컨νΈλ‘€λ¬λ λ³΄ν΅ μ§μ λΉμ¦λμ€ λ‘μ§μ μ²λ¦¬νμ§ μκ³ , μλΉμ€ κ³μΈ΅μ νΈμΆνμ¬ νμν μ²λ¦¬λ₯Ό μμν©λλ€.
- 컨νΈλ‘€λ¬λ μ¬μ©μ μ λ ₯μ λ°μ μλΉμ€λ‘ μ λ¬νκ³ , μλΉμ€μ κ²°κ³Όλ₯Ό λ°μ μ¬μ©μμκ² λ°ννλ μν μ ν©λλ€.
- 컨νΈλ‘€λ¬λ λ³΄ν΅ μ§μ λΉμ¦λμ€ λ‘μ§μ μ²λ¦¬νμ§ μκ³ , μλΉμ€ κ³μΈ΅μ νΈμΆνμ¬ νμν μ²λ¦¬λ₯Ό μμν©λλ€.
-
5. μμΈ μ²λ¦¬.
-
@Controller
μ λ Έν μ΄μ μ μ¬μ©νλ ν΄λμ€λ λν@ExceptionHandler
λ₯Ό μ¬μ©νμ¬ νΉμ μμΈλ₯Ό μ²λ¦¬ν μ μμ΅λλ€.- μ΄λ₯Ό ν΅ν΄ 컨νΈλ‘€λ¬ λ΄μμ λ°μνλ μμΈλ₯Ό μ‘μ νΉμ μλ΅μ λ°ννκ±°λ μλ¬ νμ΄μ§λ₯Ό 보μ¬μ€ μ μμ΅λλ€.
-
μμ½νλ©΄, @Controller
μ λ
Έν
μ΄μ
μ ν΄λΉ ν΄λμ€λ₯Ό μ€νλ§ MVCμμ μμ²μ μ²λ¦¬νλ 컨νΈλ‘€λ¬λ‘ μ μνλ©°, HTTP μμ²μ μ²λ¦¬νκ³ μ μ ν μλ΅μ μμ±νλλ° μ€μν μν μ ν©λλ€.