рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдЬреЗрдмреНрд░реЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХреА рдФрд░ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдореИрдВ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рдЬреЗрдмреНрд░реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЪрд░рдг рджрд░ рдЪрд░рдгред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдкреЗрдЯрдХреНрд▓рд┐рдирд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдВ, рдЬрд┐рд╕рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб
GitHub рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдореИрдВ рдПрдХ IDE рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛
IntelliJIDEA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рдЯреНрд░реЗрдирд┐рдВрдЧ
JRebel4IntelliJ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, IntelliJIDEA рдХреЗ рд▓рд┐рдП JRebel рдкреНрд▓рдЧрдЗрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -> рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд░ рдЬрд╛рдПрдВ ,
рдмреНрд░рд╛рдЙрдЬрд╝ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдХреНрд▓рд┐рдХ
рдХрд░реЗрдВ ... , рд╣рдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рд╕реВрдЪреА рдореЗрдВ
рдЬреЗрдмрд░реЗрд▓ рдкреНрд▓рдЧрдЗрди рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдЖрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд╣рд▓реА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

Petclinic
рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
git clone git://github.com/xebia-france-training/xebia-petclinic.git
рдЖрдИрдбреАрдИ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЦреЛрд▓реЗрдВ (
рдПрдХ рдорд╛рд╡реЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ )ред
рдЫреЛрдЯреА рд╕реА рд╕реЗрдЯрд┐рдВрдЧ
1. рд╡рд┐рджреНрд░реЛрд╣реА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред xml
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ
рд╡рд┐рджреНрд░реЛрд╣реАред xml рд╕рд╣реЗрдЬреЗрдВ
, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╛ рддреЛ
src / main / java рдореЗрдВ рдпрд╛
src / main / resource рдореЗрдВ ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж,
rebel.xml WEB-INF / рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛред
2. rebel.xml рдореЗрдВ рдореБрдЦреНрдп / рдЬрд╛рд╡рд╛ / рд╕рдВрд╕рд╛рдзрди рдЬреЛрдбрд╝реЗрдВрдЪреВрдВрдХрд┐ рдпрд╣ рдкреНрд▓рдЧрдЗрди
rebel.xml рдЙрддреНрдкрдиреНрди
рдХрд░рддрд╛ рд╣реИ , рдЬрд┐рд╕рдХреЗ рд╕реНрд░реЛрдд рд╕реНрд░реЛрдд рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд (
рд▓рдХреНрд╖реНрдп \ рдХрдХреНрд╖рд╛рдПрдВ ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (
рдореБрдЦреНрдп / рд╡реЗрдмрдПрдк ) рдХреА рд╡реЗрдм рдкрд╛рд░реНрдЯ рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрде рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред ред рдлрд┐рд▓рд╣рд╛рд▓, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдорд╛рдорд▓рд╛ рд╣реИ -
src / main / resource directory рдХреЛ рдЬрдирд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛
rebel.xml рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдмрд╛рдж рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред
рдЙрдкрдпреБрдХреНрдд рддрддреНрд╡ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░рд╛ рдирдпрд╛
rebel.xml рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд┐рджреНрд░реЛрд╣реА.рдПрдХреНрд╕рдПрдордПрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
рд╡рд┐рд╢реЗрд╖ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ рддрджрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдЬреЗрдмреНрд░реЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рд▓рд╛рдВрдЪ
рд╣рдо Tomcat 7 рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдПрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
Edit configurations рдЪреБрдиреЗрдВ
ред
рдЯреЙрдордХреИрдЯ рдЪреБрдиреЗрдВ
-> рд╕реНрдерд╛рдиреАрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

рдЕрдЧрд▓рд╛, рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдЬреЛрдбрд╝реЗрдВред рд╡рд┐рдХрд▓реНрдк рдпрд╣ рддрдп рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрд╡реЗрджрди рдХреЛ рдкреИрдХреЗрдЬреНрдб рдпрд╛ рдЕрдирдкреИрдХреНрдб (
рдПрдХреНрд╕рдкреНрд▓реЛрдбреЗрдб ) рдореЛрдб рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдЕрдирдкреИрдХреНрдб рдореЛрдб рдХреЛ рдЪреБрдирд╛ рд╣реИред
рдХрд┐рдП рдЧрдП рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рд▓реЙрдиреНрдЪ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ:

рд╡рд╣ рд╣реИ - рд╕рдм рдареАрдХ рд╣реИ - рдЬреЗрдмреНрд░реЗрд▓ рдЪрд╛рд▓реВ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕реЗ рд╣реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдЧреЗ рдмрдврд╝рддреА рд╣реИ, рдЖрдкрдХреЛ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ рдХрд┐ JRebel рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЯреНрд░реИрдХ рдХрд░реЗрдЧрд╛:

рдпреЗ рд╡реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ рдЬреЛ
рд╡рд┐рджреНрд░реЛрд╣реА.рдПрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ
рдереАрдВ ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рдордп, рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ JRebel рдХрд░реЗрдЧреА, рд╡рд╣
WEB-INF / рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╣рдорд╛рд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рд╕рдлрд▓ рд╣реЛрддреА рд╣реИ, рддреЛ
рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ рдХреЛ
рд╡рд┐рджреНрд░реЛрд╣реА .xml рдореЗрдВ рдкрд╛рдП рдЧрдП рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрд╣реЗрдВ ред рдпрджрд┐
рд╡рд┐рджреНрд░реЛрд╣реА .
xml рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдПрдХ "рд░реЛрд▓рдмреИрдХ" рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдбрд░ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рддреНред рддреИрдирд╛рдд рдЖрд╡реЗрджрди рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдЦреЛрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐
рдЖрдЗрдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ : 8080 рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрдпрд╛ рд╣реИ
рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВ
рд╕реНрд╡рд╛рдореА рдвреВрдВрдвреЗрдВ , рдлрд┐рд░
рд╕реНрд╡рд╛рдореА рдЬреЛрдбрд╝реЗрдВ , рдФрд░ рдлрд╝реЙрд░реНрдо рдореЗрдВ рд░рд┐рдХреНрдд рдорд╛рдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ:

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

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

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ,
рдкрддрд╛ рдлрд╝реАрд▓реНрдб рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдЖрдкрдХреЛ JRebel рдХреЗ рдирд┐рдореНрди рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ
рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
Petclinic-servlet.xml рдореЗрдВ рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВ:

рдЕрдВрддрд┐рдо рдЪрд░рдг рдирд┐рдпрдВрддреНрд░рдХ рдХреЛрдб рдореЗрдВ
@Autowired рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШрдЯрдХ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ
AddOwnerForm рд╡рд░реНрдЧ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, 4 рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓реА рдЧрдИрдВ:
- рдирдпрд╛ FirstNameValidator рд╡рд░реНрдЧ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
- рдореМрдЬреВрджрд╛ рд╡рд░реНрдЧ AddOwnerForm рдмрджрд▓ рдЧрдпрд╛
- рд╕рдВрджреЗрд╢ рдмрджрд▓реЗ рдЧрдП
- petclinic-servlet.xml рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкрд╛рджрд┐рдд
рдЕрдм рдЖрдкрдХреЛ рдирдИ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдлрд┐рд░ рд╕реЗ рдлреЙрд░реНрдо рднрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рдЖрдк
рдкрд╣рд▓реЗ рдирд╛рдо рдлрд╝реАрд▓реНрдб рдореЗрдВ
"рдПрдВрдЯреЛрди" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдорд╛рди рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЪреЗрдХ
"рдПрдВрдЯреЛрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП" - рд╡рд╣реА рд╕рдВрджреЗрд╢ рдЬреЛ рд╣рдордиреЗ рд╕рдВрджреЗрд╢ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдерд╛
редрдкреНрд░рдпреЛрдЧ рдФрд░
FirstNameValidator рдореЗрдВ рдЙрдкрдпреЛрдЧ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред ред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЫреЛрдЯрд╛ рдЧрд╛рдЗрдб рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ рдЬреЛ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ
рдЬреЗрдмреНрд░реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рд╢реНрди рд╣реИрдВ - рд▓рд┐рдЦреЗрдВ - рдореБрдЭреЗ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА!