S06L02 – рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдлреЙрд░реНрдо рдХреЛ рдЙрдиреНрдирдд рдХрд░рдирд╛

html

Spring Boot рдореЗрдВ рдлреЙрд░реНрдо рдорд╛рдиреНрдпрдХрд░рдг рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛: рдПрдХ рд╡реНрдпрд╛рдкрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

рд╕рд╛рдордЧреНрд░реА

  1. рдкрд░рд┐рдЪрдп
  2. рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛
  3. рдбреНрд░реЙрдкрдбрд╛рдЙрди рдФрд░ рдЧрдгрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
  4. рдорд╛рдиреНрдпрдХрд░рдг рдПрдиреЛрдЯреЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рдирд╛
  5. рдлреНрд░рдВрдЯ-рдПрдВрдб рдФрд░ рдмреИрдХ-рдПрдВрдб рдорд╛рдиреНрдпрдХрд░рдг
  6. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реЛрдЯреЛ рдкреНрд░рдмрдВрдзрди
  7. рдХрд╛рдБрдлрд┐рдЧрд░реЗрд╢рди рдкрдврд╝рдирд╛ from application.properties
  8. рдирд┐рд╖реНрдХрд░реНрд╖

рдкрд░рд┐рдЪрдп

рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдЗрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╣рд▓реВ рдордЬрдмреВрдд рдлреЙрд░реНрдо рдорд╛рдиреНрдпрдХрд░рдг рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдПрдХ Spring Boot рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рднреАрддрд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реЗрд╢рди рдлреЙрд░реНрдо рдореЗрдВ рдорд╛рдиреНрдпрдХрд░рдг рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдЧрд╣рди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рд╣рдо рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ, рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ, рдлреНрд░рдВрдЯ-рдПрдВрдб рдФрд░ рдмреИрдХ-рдПрдВрдб рджреЛрдиреЛрдВ рдорд╛рдиреНрдпрдХрд░рдг рд▓рд╛рдЧреВ рдХрд░рдиреЗ, рдФрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реЛрдЯреЛ рдЬреИрд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрд▓реЛрдб рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗред

рдлреЙрд░реНрдо рдорд╛рдиреНрдпрдХрд░рдг рдХрд╛ рдорд╣рддреНрд╡

рдлреЙрд░реНрдо рдорд╛рдиреНрдпрдХрд░рдг рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдЖрд╡реЗрджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рдЙрдЪрд┐рдд рдорд╛рдиреНрдпрдХрд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддреБрд░рдВрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдлреЙрд░реНрдо рд╕рдмрдорд┐рд╢рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрдЧрддрд┐ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред

рдореБрдЦреНрдп рдмрд┐рдВрджреБ

  • рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдореЗрдВ рд╕реБрдзрд╛рд░: рдЙрдореНрд░, рдЬрдиреНрдо рддрд┐рдерд┐, рдФрд░ рдлреЛрдЯреЛ рдЬреИрд╕реЗ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рдирд╛ред
  • рдорд╛рдиреНрдпрдХрд░рдг рдПрдиреЛрдЯреЗрд╢рди: Spring рдХреЗ рдорд╛рдиреНрдпрдХрд░рдг рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
  • рдлреНрд░рдВрдЯ-рдПрдВрдб рдмрдирд╛рдо рдмреИрдХ-рдПрдВрдб рдорд╛рдиреНрдпрдХрд░рдг: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рдмрдирд╛рдирд╛ред
  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ properties рдкрдврд╝рдирд╛ред

рдлреЙрд░реНрдо рдорд╛рдиреНрдпрдХрд░рдг рдХрдм рдФрд░ рдХрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдлреЙрд░реНрдо рдорд╛рдиреНрдпрдХрд░рдг рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб (рдлреНрд░рдВрдЯ-рдПрдВрдб) рдкрд░ рддреБрд░рдВрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб (рдмреИрдХ-рдПрдВрдб) рдкрд░ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдЬрдЧрд╣ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рджреНрд╡рд┐-рд╕реНрддрд░реАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЗрдирдкреБрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рд╕рдордЧреНрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред


рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛

рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдПрдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реЗрд╢рди рдлреЙрд░реНрдо рдореЗрдВ рдирдП рдлрд╝реАрд▓реНрдб рдФрд░ рдорд╛рдиреНрдпрдХрд░рдг рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдмреБрдирд┐рдпрд╛рджреА рдХрджрдо рд╣реИред

рдирдП рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рдирд╛

  1. Last Name: рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЙрдбрд▓ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред
  2. Gender: рдбреНрд░реЙрдкрдбрд╛рдЙрди рдЪрдпрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  3. Age: рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдлрд╝реАрд▓реНрдбред
  4. Date of Birth: рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ LocalDate рдлрд╝реАрд▓реНрдбред
  5. Photo: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЪрд┐рддреНрд░ рдХреЗ рдкрде рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝реАрд▓реНрдбред

рдЙрджрд╛рд╣рд░рдг: Account Model рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛

рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ:

  • @NotEmpty рдФрд░ @NotNull: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝реАрд▓реНрдб рдЦрд╛рд▓реА рдирд╣реАрдВ рдЫреЛрдбрд╝реА рдЧрдИ рд╣реИрдВред
  • @Email: рдИрдореЗрд▓ рдлреЙрд░реНрдореЗрдЯ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИред
  • @Min рдФрд░ @Max: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  • @DateTimeFormat: рджрд┐рдирд╛рдВрдХ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдкреИрдЯрд░реНрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

рдбреНрд░реЙрдкрдбрд╛рдЙрди рдФрд░ рдЧрдгрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛

рдбреНрд░реЙрдкрдбрд╛рдЙрди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп UI рддрддреНрд╡ рд╣реИрдВред рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ, gender рдлрд╝реАрд▓реНрдб рдХреЛ рдПрдХ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд▓рд┐рдВрдЧ рдЪрдпрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛

  1. Model Update: gender рдлрд╝реАрд▓реНрдб рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
  2. Front-End Implementation: рдкреБрд░реБрд╖, рдорд╣рд┐рд▓рд╛, рдФрд░ рдЕрдиреНрдп рдЬреИрд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ <select> рддрддреНрд╡ред

рдЙрджрд╛рд╣рд░рдг: HTML рдореЗрдВ Gender Dropdown

рдореБрдЦреНрдп рдмрд┐рдВрджреБ:

  • No Default Validation: рдбреНрд░реЙрдкрдбрд╛рдЙрди рдЪрдпрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреНрд░рдВрдЯ рдПрдВрдб рджреНрд╡рд╛рд░рд╛ рд╕рдВрднрд╛рд▓рд╛ рдЧрдпрд╛ред
  • Consistent Naming: рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмреИрдХрдПрдВрдб рдЪрдпрдирд┐рдд рдорд╛рди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдореИрдк рдХрд░реЗред

рдорд╛рдиреНрдпрдХрд░рдг рдПрдиреЛрдЯреЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рдирд╛

Spring Boot рдПрдХ рдордЬрдмреВрдд рдорд╛рдиреНрдпрдХрд░рдг рдлреНрд░реЗрдорд╡рд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдорд╛рдиреНрдпрдХрд░рдг рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рдирд╛

  1. First Name рдФрд░ Last Name: рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. Email: рдорд╛рдиреНрдп рдИрдореЗрд▓ рдлреЙрд░реНрдореЗрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
  3. Password: рд╕реБрд░рдХреНрд╖рд╛ рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕реЗ, рдЦрд╛рд▓реА рдирд╣реАрдВ)ред
  4. Age: 18 рд╕реЗ 99 рдХреА рд╢реНрд░реЗрдгреА рдХреЗ рднреАрддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  5. Date of Birth: yyyy-MM-dd рдлреЙрд░реНрдореЗрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг: Account Model рдореЗрдВ Validation Annotations

рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ:

  • Custom Messages: рдЬрдм рдорд╛рдиреНрдпрдХрд░рдг рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • Data Types: рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЙрдкрдпреБрдХреНрдд рд╣реИ (рдЬреИрд╕реЗ, рджрд┐рдирд╛рдВрдХ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП LocalDate)ред

рдлреНрд░рдВрдЯ-рдПрдВрдб рдФрд░ рдмреИрдХ-рдПрдВрдб рдорд╛рдиреНрдпрдХрд░рдг

рдлреНрд░рдВрдЯ-рдПрдВрдб рдФрд░ рдмреИрдХ-рдПрдВрдб рджреЛрдиреЛрдВ рдорд╛рдиреНрдпрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рд╕рд╣рдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рднреА рдмрдиреА рд░рд╣рддреА рд╣реИред

рдлреНрд░рдВрдЯ-рдПрдВрдб рдорд╛рдиреНрдпрдХрд░рдг

  1. HTML5 Validation Attributes: required, min, рдФрд░ max attributes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
  2. Instant Feedback: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрдирдкреБрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреБрд░рдВрдд рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг: рдлреНрд░рдВрдЯ-рдПрдВрдб рдорд╛рдиреНрдпрдХрд░рдг рдХреЗ рд╕рд╛рде Age рдлрд╝реАрд▓реНрдб

рд▓рд╛рдн:

  • Enhanced User Experience: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлреЙрд░реНрдо рд╕рдмрдорд┐рд╢рди рд╕реЗ рдкрд╣рд▓реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реБрдзрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред
  • Reduced Server Load: рдЕрд╡реИрдз рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред

рдмреИрдХ-рдПрдВрдб рдорд╛рдиреНрдпрдХрд░рдг

  1. Spring Validation Framework: рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
  2. Security: рдлреНрд░рдВрдЯ-рдПрдВрдб рдорд╛рдиреНрдпрдХрд░рдг рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЗрдирдкреБрдЯ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг: Controller рдореЗрдВ рдорд╛рдиреНрдпрдХрд░рдг рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛

рдореБрдЦреНрдп рдмрд┐рдВрджреБ:

  • @Valid Annotation: Account рдореЙрдбрд▓ рдкрд░ рдорд╛рдиреНрдпрдХрд░рдг рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
  • BindingResult: рджреГрд╢реНрдп рдореЗрдВ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдпрдХрд░рдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реЛрдЯреЛ рдкреНрд░рдмрдВрдзрди

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрд▓реЛрдбреНрд╕, рдЬреИрд╕реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реЛрдЯреЛ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреА рдлрд╝реЛрдЯреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреЛрдЯреЛ рд╕реЗрдЯ рдХрд░рдирд╛

  1. Model Configuration: photo рдлрд╝реАрд▓реНрдб рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЫрд╡рд┐ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИред
  2. Application Properties: рд╕реНрдЯреЗрдЯрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкрде application.properties рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг: Account Model рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреЛрдЯреЛ рд╕реЗрдЯрд┐рдВрдЧ

рдлрд╝реЛрдЯреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛

рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕реБрдзрд╛рд░реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдлреНрд░рдВрдЯ рдПрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реЛрдЯреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг: Service рд▓реЗрдпрд░ рдореЗрдВ рдлрд╝реЛрдЯреЛ рд╣реИрдВрдбрд▓рд┐рдВрдЧ

рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ:

  • Default Values: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реЛрдЯреЛ рд╣реЛ, рднрд▓реЗ рд╣реА рд╡реЗ рдХреЛрдИ рдЕрдкрд▓реЛрдб рди рдХрд░реЗрдВред
  • Flexible Configuration: рдкрде рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЛрдбрдмреЗрд╕ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХрд╛рдБрдлрд┐рдЧрд░реЗрд╢рди рдкрдврд╝рдирд╛ from application.properties

application.properties рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд▓рдЪреАрд▓рд╛рдкрди рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг: application.properties рд╕реЗ Photo Prefix рдкрдврд╝рдирд╛

рдореБрдЦреНрдп рдмрд┐рдВрджреБ:

  • Dynamic Configuration: рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдмрд┐рдирд╛ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЗред
  • Maintainability: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рдмрдВрдзрди рдЖрд╕рд╛рди рд╣реЛ рд╕рдХреЗред

рдирдореВрдирд╛ application.properties

рдЙрдкрдпреЛрдЧ:

  • photo.prefix рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реЛрдЯреЛ рдХреЗ рдкрде рдХреЛ рдбрд╛рдпрдиреЗрдорд┐рдХрд▓реА рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖

рдордЬрдмреВрдд рдлреЙрд░реНрдо рдорд╛рдиреНрдпрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ, рдФрд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ, Spring рдХреЗ рдорд╛рдиреНрдпрдХрд░рдг рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдФрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдФрд░ рдмреИрдХ-рдПрдВрдб рдорд╛рдиреНрдпрдХрд░рдг рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рдмрдирд╛рдХрд░, рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рд░рдЬрд┐рд╕реНрдЯреНрд░реЗрд╢рди рдлреЙрд░реНрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрд▓реЛрдбреНрд╕ рдЬреИрд╕реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реЛрдЯреЛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд▓рдЪреАрд▓рд╛рдкрди рдФрд░ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖

  • Comprehensive Validation: рдлреНрд░рдВрдЯ-рдПрдВрдб (HTML5 attributes) рдФрд░ рдмреИрдХ-рдПрдВрдб (Spring annotations) рджреЛрдиреЛрдВ рдорд╛рдиреНрдпрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • Configuration Management: рдбрд╛рдЗрдирд╛рдорд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП application.properties рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВред
  • User Experience: рдлреЙрд░реНрдо рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдлреНрд░рдВрдЯ-рдПрдВрдб рдорд╛рдиреНрдпрдХрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреБрд░рдВрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
  • Data Integrity and Security: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рднреА рдбреЗрдЯрд╛ рдЖрд╡реЗрджрди рдорд╛рдирдХреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЗрдирдкреБрдЯ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

Note: This article is AI generated.






Share your love