рд╕реНрдкреНрд░рд┐рдВрдЧ рдкреНрд░реЛрдлреЗрд╢рдирд▓ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреА рддреИрдпрд╛рд░реАред рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдорд╡реАрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди

рд╕рднреА рдХрд╛ рдЕрднрд┐рд╡рд╛рджрдиред


рд╕реНрдкреНрд░рд┐рдВрдЧ рдкреНрд░реЛрдлреЗрд╢рдирд▓ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реЗрдЦреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдпрд╣ 5 рд╡рд╛рдБ рд▓реЗрдЦ рд╣реИред


рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛
  1. рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди, рдХрдВрдЯреЗрдирд░, IoC, рд╕реЗрдо
  2. рдПрдУрдкреА (рдкрд╣рд▓реВ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ)
  3. рдЬреЗрдбреАрдмреАрд╕реА, рд▓реЗрдирджреЗрди, рдЬреЗрдкреАрдП, рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛
  4. рд╡рд╕рдВрдд рдХрд╛ рдмреВрдЯ
  5. рд╕реНрдкреНрд░рд┐рдВрдЧ mvc
  6. рд╡рд╕рдВрдд рд╕реБрд░рдХреНрд╖рд╛
  7. рдмрд╛рдХреА
  8. рдкрд░реАрдХреНрд╖рдг

рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдпреЗ рд▓реЗрдЦ рдкреНрд░рдорд╛рдгрди рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рдкреБрд╕реНрдЯрд▓ рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рд╣реИрдВред





MVC рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреИрдЯрд░реНрди рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣реИред рдпрд╣ рдкреИрдЯрд░реНрди рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИ?

MVC рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИред рд╡рд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ 3 рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ:


  • рдореЙрдбрд▓ - рдореЙрдбрд▓ рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
  • рджреГрд╢реНрдп - рджреГрд╢реНрдпрдкрдЯрд▓ рдкрд░ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
  • рдирд┐рдпрдВрддреНрд░рдХ - рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╡рд╣ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


DispatcherServlet рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдпрд╣ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рд▓рд┐рдП MVC рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╣ рдореБрдЦреНрдп рд╕рд░реНрд╡рд▓реЗрдЯ рд╣реИ рдЬреЛ рдирд┐рдпрдорд┐рдд рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдЕрдиреБрд░реЛрдз рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред


  • рдпрд╣ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрдВрдЬреАрдХреГрдд рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред
  • ViewResolver рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдирд╛рдореЛрдВ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд░рдХреЗ рджреГрд╢реНрдп рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ
  • рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХрд╛ рдЧрдпрд╛


рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреНрдпрд╛ рд╣реИ?
  1. рдЕрдиреБрд░реЛрдз DispatcherServlet рдореЗрдВ рдЖрддрд╛ рд╣реИ
  2. DispatcherServlet рдЕрдиреБрд░реЛрдз рдкрд░ URL рд╕реЗ рдЖрдзрд╛рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ
  3. рдирд┐рдпрдВрддреНрд░рдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рдкрд░рдд рдХреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ @Service (рдЖрдорддреМрд░ рдкрд░ рдпреЗ @Service рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ), рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдбрд┐рд╕реНрдкреИрдЪрд░ @Service рд╡рд╛рдкрд╕ рднреЗрдЬрддрд╛ рд╣реИ
  4. DispatcherServlet ViewResolver рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдиреАрдЪреЗ рдЗрд╕ рдкрд░ рдФрд░ рдЕрдзрд┐рдХ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореЙрдбрд▓ рдХреЛ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╕рд╛рдордиреЗ рднреЗрдЬрддрд╛ рд╣реИ

рдбрд┐рд╕реНрдкреИрдЪрд░рд╕рд░реНрд╡рд▓реЗрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

ApplicationContext рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ DS рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧ 3.2 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, WebApplicationInitializer рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрд┐рд╕реЗ AbstractAnnotationConfigDispatcherServletInitialize рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред


AbstractAnnotationConfigDispatcherServletInitializer рджреЛрдиреЛрдВ рдбрд┐рд╕реНрдкреИрдЪрд░рд╕рд░реНрд╡рд▓реЗрдЯ рдФрд░ ContextLoaderListener рдмрдирд╛рддрд╛ рд╣реИред


DS рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:


  • Web.xml рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдЧреБрдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ
  • рдЕрдзрд┐рднрд╛рд╡реА рд╕рд╛рд░

WebApplicationContext рдХреНрдпрд╛ рд╣реИ? рд╡рд╣ рдХреНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреЛрдк рд▓рд╛рддрд╛ рд╣реИ?

рдпрд╣ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрджрд░реНрдн рд╣реИред
рдЗрд╕рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд ApplicationConext рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕реЗ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдорд╛рдирдХ рд╕рд░реНрд╡рд▓реЗрдЯ рдПрдкреАрдЖрдИ рдХреЗ рддрд░реАрдХреЗ рднреА рд╣реИрдВред


рдиреЛрдЯ: рд╕реНрдХреЛрдк рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реИред


рдХреНрд╖реЗрддреНрд░рд╡рд┐рд╡рд░рдг
Requestрд╕реНрдХреЛрдк - 1 HTTP рдЕрдиреБрд░реЛрдзред рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдмреАрди рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред
Sessionрд╕реНрдХреЛрдк - 1 рд╕рддреНрд░ред рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдмреАрди рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред
Applicationрд╕реНрдХреЛрдк - рд╕рд░реНрд╡рд▓реЗрдЯрдХреЛрдЯреЗрдХреНрд╕реНрдЯ рдЬреАрд╡рди рдЪрдХреНрд░
WebSocketрд╕реНрдХреЛрдк - рд╡реЗрдмрд╕реНрдХреЗрдЯ рдЬреАрд╡рди рдЪрдХреНрд░

рд╕рддреНрд░ рдЧреБрдВрдЬрд╛рдЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?

рд╕рддреНрд░ scoped рдмреАрди рдПрдХ рд╕реЗрдо рд╣реИ рдЬреЛ рд╕рддреНрд░ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдЖрджрд┐ рдореЗрдВ рдЯреЛрдХрд░реА рдмрдирд╛рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


MVC рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдХреЛрдк рдХреНрдпрд╛ рд╣реИ?

рдмрд╕ MVC рдХреЗ рдмрд┐рдирд╛ рд╡рд╕рдВрдд рдореЗрдВ - рд╕рд┐рдВрдЧрд▓рдЯрдиред


@Controller рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?

рдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ http рдЕрдиреБрд░реЛрдз рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╡рд░реНрдЧ-рд╕реНрддрд░реАрдп рдПрдиреЛрдЯреЗрд╢рди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдШрдЯрдХ рдПрдиреЛрдЯреЗрд╢рди рд╣реЛрддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рдПрдХ рдирд┐рдпрдорд┐рдд POJO рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд╣реИрдВрдбрд▓рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рдеред


рдЗрдирдХрдорд┐рдВрдЧ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдореИрдк рдХреЛ рд╣реИрдВрдбрд▓рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ?
  1. DispatcherServlet рд╕реЗ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
  2. DS рдореЗрдВ HandlerMapping рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ HandlerMapping
  3. рд╣реИрдВрдбрд▓рд░ рд╡рд╣рд╛рдВ рд╡рд┐рдзрд┐ рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ
  4. рд╣реИрдВрдбрд▓рд░ рд╡рд┐рдзрд┐ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреА рд╣реИ

рд╣рдореЗрдВ рдПрдиреЛрдЯреЗрд╢рди @RequestMapping рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВ

рдпрд╣ рдПрдиреЛрдЯреЗрд╢рди рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреВрдЖрд░рдЖрдИ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ URI, http рд╡рд┐рдзрд┐, рднреЗрдЬреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░, рдЖрджрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ред рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдЗрд╕реЗ рдПрдиреЛрдЯреЗрд╢рди @GetMapping, @PostMapping, рдЖрджрд┐ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдпреВрдЖрд░рдЖрдИ рдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдПрдиреЛрдЯреЗрд╢рди @GetMapping, @PostMapping, @DeleteMapping рдФрд░ рдЕрдиреНрдп рдХреНрдпрд╛ рд╣реИрдВ?

Http рддрд░реАрдХреЛрдВ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреЗ рд╕рдВрдХреАрд░реНрдг рдПрдиреЛрдЯреЗрд╢рди рд╣реИрдВред


  • @GetMapping - рд╣реИрдВрдбрд▓ рд╕реЗ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ
  • @PostMapping - рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ
  • @DeleteMapping - рд╣реИрдВрдбрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ
  • @PutMapping - рд╣реИрдВрдбрд▓ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ
  • @PatchMapping - рдкреИрдЪ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ

рдиреАрдЪреЗ рд▓рд┐рдЦрд╛ рд╕рдм рдХреБрдЫ рдЕрдиреНрдп рдПрдиреЛрдЯреЗрд╢рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рднреА рд╣реИред


рдПрдиреЛрдЯреЗрд╢рди @GetMapping рдХреЗрд╡рд▓ рдПрдХ рдПрдиреЛрдЯреЗрд╢рди рд╣реИ рдЬрд┐рд╕рдореЗрдВ @RequestMapping (рд╡рд┐рдзрд┐ = RequestMethod.GP) рд╢рд╛рдорд┐рд▓ рд╣реИ ред
рдпрд╣ рдЖрдкрдХреЛ рд╣реИрдВрдбрд▓рд░ рд╡рд┐рдзрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ (рд╡реЗ рд╕рдорд╛рди @RequestMapping рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ):


  • path - рдпреВрдЖрд░рдЖрдИ
  • headers - рд╣реЗрдбрд░
  • name - рд╣реИрдВрдбрд▓рд░ рдирд╛рдо
  • params - рдкреИрд░рд╛рдореАрдЯрд░
  • produces - рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░ (JSON, XML, рдкрд╛рда)ред REST рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд
  • consumes - рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░ред REST рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд


    рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдиреЛрдЯреЗрд╢рди рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкрде рд▓реЗрддрд╛ рд╣реИред
    @GetMapping("managers") = @GetMapping(path = "managers")



@RequestParam рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?

рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣реИрдВрдбрд▓рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдорд┐рд▓ рд╕рдХреЗред


рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрд░реЛрдз: http://localhost:8080/getByName/name=Ivan ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ Ivan рдХреЛ рдЪрд░ name рдореЗрдВ рдбрд╛рд▓ рджреЗрдЧрд╛ред


 @GetMapping("getByName") public User getUserByName(@RequestParam("name") String name) { //some logic } 

@PathVariable рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?

рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдпреВрдЖрд░рдЖрдИ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рдЧ рдорд┐рд▓рддрд╛ рд╣реИред


URI: http://localhost:8080/getById/23


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб id рдЪрд░ рдореЗрдВ 23 рдбрд╛рд▓ рджреЗрдЧрд╛ред


 @GetMapping("getById/_{id}_") public User getUserById(@PathVariable("id") String id) { //some logic } 

рд╣реИрдВрдбрд▓рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ рд╕реНрд╡реАрдХреГрдд рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдлрд┐рд░ рд╡рд╕рдВрдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╛рдВрдЫрд┐рдд HttpSession рдСрдмреНрдЬреЗрдХреНрдЯ, рд╕реБрд░рдХреНрд╖рд╛, рдЖрджрд┐ред


 @GetMapping public User getUserById(HttpSession session) { //some logic //      } 

рдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдВрдЧреНрд░реЗрдЬреА)


рд╡рд┐рдзрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдХреНрдпрд╛ рдПрдиреЛрдЯреЗрд╢рди рд╣реИрдВ?
  • @MatrixVariable - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ URI рд╕реЗ рдПрдХ рдирд╛рдо-рдореВрд▓реНрдп рдЬреЛрдбрд╝реА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • @RequestHeader - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдХреЗ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • @CookieValue - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
    рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХреБрдХреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рдХреБрдХреА рдореВрд▓реНрдп рдХреЗ рдПрдХ рдкреНрд░рдХрд╛рд░ (рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЗрдВрдЯ, рдЖрджрд┐) рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • @ModelAttribute - рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рдирд╛рдорд┐рдд рдореЙрдбрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред
  • @SessionAtribute - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рддреНрд░ рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

@RequestBody рдПрдиреЛрдЯреЗрд╢рди рдХреНрдпрд╛ рд╣реИ?

рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддреА рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ JSON, XML, рдкрд╛рда рдЖрджрд┐ рднреЗрдЬрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ REST рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреА рд╣реИ?
рд▓реМрдЯреА рд╣реБрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЙрдирдХрд╛ рд╡рд┐рд╡рд░рдг (рдЕрдВрдЧреНрд░реЗрдЬреА)

рдХреНрдпрд╛ рдПрдХ рджреГрд╢реНрдп рд╣реИ?

рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдорд╡реАрд╕реА рдХрдИ рд╡реНрдпреВ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░реНрд╕ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ (рдЗрдиреНрд╣реЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) - рдЬреЗрдПрд╕рдкреА, рдЬреЗрдПрд╕рдПрдл, рдерд╛рдЗрдореЗрд▓рдл, рдЖрджрд┐ред
рджреЗрдЦреЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд┐рдпрдорд┐рдд рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред


рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЪрд░рдг рдореЗрдВ рд╡реНрдпреВ рдХреЛ рдХреИрд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ? рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдбрд┐рд╕реНрдкреИрдЪрд░рд╕рд░реНрд╡рд▓реЗрдЯ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ "рдореИрдкрд░реНрд╕" рдХреА рдПрдХ рд╕реВрдЪреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рд╕рд░реНрд╡рд▓реЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕рдореЗрдВ рд╡реЗ рдбрд┐рдмреНрдмреЗ рд╣реЛрдВрдЧреЗ рдЬреЛ ViewResolver рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред


рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЗрдЦреЗрдВ:


  1. рдирд┐рдпрдВрддреНрд░рдХ DispactherServlet рдореЗрдВ рдирд╛рдо рджреГрд╢реНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИ
  2. ViewResolver рдореЗрдВ рдирд╛рдо рдХреЗ рдирдХреНрд╢реЗ рдХрд╛ рдирд╛рдо
  3. рдпрджрд┐ рдПрдХ рдЙрдкрдпреБрдХреНрдд ViewResolver рдЬрд╛рддрд╛ ViewResolver , рддреЛ рдпрд╣ рд╡рд╣ рджреГрд╢реНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЗрдВрдбрд░ рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  4. рдбреАрдПрд╕ рджреГрд╢реНрдп рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ (рдПрдЪрдЯреАрдПрдордПрд▓ рдкреЗрдЬ) рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ

рдПрдХ рдореЙрдбрд▓ рдХреНрдпрд╛ рд╣реИ?

рдпрд╣ рдПрдХ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдореЙрдбрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред
рдореЙрдбрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рджреГрд╢реНрдп рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рджреГрд╢реНрдп Customer рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореЙрдбрд▓ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП customerName , customerPhone , рдФрд░ рдЗрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдореЙрдбрд▓ рд╕реЗ рдореВрд▓реНрдп рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi470566/


All Articles