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

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


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




рд╕рд╡рд╛рд▓


рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдХреНрдпрд╛ рд╣реИ?

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


рдпрд╣рд╛рдБ рдХреБрдЫ рдХреЗрдВрджреНрд░реАрдп рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ:


  • рд╡рд╕рдВрдд-рдмреВрдЯ-рдирд┐рд░реНрднрд░рддрд╛ред рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрднрд░рддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  • рд╡рд╕рдВрдд-рдмреВрдЯ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдорд╛рддрд╛ рдкрд┐рддрд╛ред рдЬрдирдХ pom.xml
  • рд╡рд╕рдВрдд-рдмреВрдЯ рд╢реБрд░реБрдЖрддред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдореВрд▓ рдореЙрдбреНрдпреВрд▓
  • рд╡рд╕рдВрдд-рдмреВрдЯ-autoconfigureред рдСрдЯреЛ рдЯреНрдпреВрдирд┐рдВрдЧ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
  • рд╡рд╕рдВрдд-рдмреВрдЯ-actuatorред рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

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

рд╡рд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рд╡рд╣ рдХреИрд╕реЗ рдФрд░ рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП?

рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреНрд▓рд╛рд╕рдкрд╛рде рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред "рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рд╕рдордЭреМрддрд╛" - рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡рддрдГ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕реЗ рддрдм рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рдПрдиреЛрдЯреЗрд╢рди рд╣реИрдВ, @ConditionalOnClass , @ConditionalOnBean , @ConditionalOnMissingBean рдФрд░ @ConditionalOnMissingClass , рдЬреЛ рдЖрдкрдХреЛ рдЗрди рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ @ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреНрд▓рд╛рд╕реЗрд╕ рдФрд░ @ рдмреАрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


  • рдПрдХ рдмреАрди рдХреЗрд╡рд▓ рддрднреА рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА рдЬрдм рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд░реНрдЧрдкрде рдореЗрдВ рд╣реЛред


    рд╡рд╣рд╛рдВ рдХреНрд▓рд╛рд╕рдкрд╛рде рд╕реЗ рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд░рддреЗ рд╣реБрдП @ConditionalOnClass рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВред


  • рдПрдХ рдмреАрди рдХреЗрд╡рд▓ рддрднреА рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА рдЬрдм рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЛрдИ рдмреАрди рдпрд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЙрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рди рд╣реЛред


    рд╡рд╣рд╛рдВ рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @ConditionalOnMissingBean , рдмреАрди рдХрд╛ рдирд╛рдо рдпрд╛ рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдВред



рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?

рд╕реНрдерд┐рддрд┐ рдПрдиреЛрдЯреЗрд╢рди рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЗрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдФрд░ рднреА рд╣реИрдВ):


рдЕрдореВрд░реНрдд
рдЧреБрдЬрд░рдиреЗ рдХреА рд╢рд░реНрдд
@ConditionalOnClass
рдХреНрд▓рд╛рд╕рдкрд╛рде рдореЗрдВ рдХрдХреНрд╖рд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐
@ConditionalOnMissingClass
рдХреНрд▓рд╛рд╕рдкрд╛рде рдореЗрдВ рдЧреБрдо рдХреНрд▓рд╛рд╕
@ConditionalOnBean
рдПрдХ рдмрд┐рди рдпрд╛ рдЙрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ (рдмреАрди рдХреНрд▓рд╛рд╕)
@ConditionalOnMissingBean
рдПрдХ рдмрд┐рди рдпрд╛ рдЙрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрднрд╛рд╡
@ConditionalOnProperty
рд╡рд╕рдВрдд рд╕рдВрдкрддреНрддрд┐ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐
@ConditionalOnResource
рдПрдХ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐
@ConditionalOnWebApplication
рдпрджрд┐ рдпрд╣ рдПрдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ, рддреЛ WebApplicationContext рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
@ConditionalOnNotWebApplication
рдпрджрд┐ рдпрд╣ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рд╣реИ

рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрдкрддреНрддрд┐ рд╕реНрд░реЛрдд рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИ?

рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЛрд░реНрд╕ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдСрд░реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрдзрд┐рдЧреНрд░рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣рд╛рдБ рдЖрд╡реЗрджрди рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдХреНрд░рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


  1. ~ / рд╡рд╕рдВрдд-рдмреВрдЯ devtools.properties рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕
  2. рдкрд░реАрдХреНрд╖рдг рд╕реЗ @TestPropertySource рдПрдиреЛрдЯреЗрд╢рди рдХреА рд╕реЗрдЯрд┐рдВрдЧ
  3. рдЧреБрдг # рд╕реНрдкреНрд░рд┐рдВрдЧрдмреЙрдЯрдЯреЗрд╕реНрдЯ # рдЧреБрдг
  4. рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ
  5. SPRING_APPLICATION_JSON рд╕реЗ рдЧреБрдг
  6. рд╕рд░реНрд╡рд▓реЗрдЯрдХреЙрдиреНрдлрд┐рдЧ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░
  7. рд╕рд░реНрд╡рд▓реЗрдЯрдХреЛрдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░
  8. JNDI рдЬрд╛рд╡рд╛ рд╕реЗ рдЧреБрдг: COMP / env
  9. рдЬрд╛рд╡рд╛ рд╕рд┐рд╕реНрдЯрдо рдЧреБрдг (System.getProperties ())
  10. рдУрдПрд╕ рдЪрд░
  11. RandomValueProperySource
  12. рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЧреБрдг, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП YAML рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ- {рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓}
  13. application.properties рдФрд░ рдпрдо рдЖрдкрдХреЗ рдЬрд╛рд░ рд╕реЗ рдирд╣реАрдВ
  14. application.properties рдФрд░ рдпрд╛рд░ рдЕрдкрдиреЗ рдЬрд╛рд░ рд╕реЗ
  15. @ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рдкрд░ @PropertySource
  16. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдкрддреНрддрд┐ ( SpringApplication.setDefaultProperties() рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ)

рдпрд╣ рднреА рдЬреЛрдбрд╝реЗрдВ рдХрд┐ property.yml рд╣рдореЗрд╢рд╛ property.properties рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреА рд╣реИред


рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ?

@SpringBootApplication 3 рдЧреБрдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:


  • @EnableAutoConfiguration - рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдХреЗ рдСрдЯреЛ-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддрдВрддреНрд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
  • @ComponentScan - рдЬрд╣рд╛рдБ рдпрд╣ рд╕реНрдерд┐рдд рд╣реИ, рд╡рд╣рд╛рдБ рдХреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдШрдЯрдХ рд╕реНрдХреИрдирд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
  • @Configuration - рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЗрдо

рдпрд╣рд╛рдБ рдЕрдиреНрдп рдкреНрд░рдореБрдЦ рдПрдиреЛрдЯреЗрд╢рди рд╣реИрдВ:


@EnableConfigurationProperties - рдЖрдкрдХреЛ @ConfigurationProperties рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде @ConfigurationProperties рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ


@ConfigurationProperties - рдЖрдкрдХреЛ рдбрд┐рдмреНрдмреЗ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдлрд╛рдЗрд▓реЗрдВ рд╕рдВрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ


@WebMvcTest - рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдорд╡реАрд╕реА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ


@SpringBootTest - рдЬрдм рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ


@DataJpaTest - JPA рдШрдЯрдХреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ


рдЗрдирд▓рд╛рдЗрди рдХрдВрдЯреЗрдирд░ рдФрд░ WAR рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИрдВ?

рдПрдореНрдмреЗрдбреЗрдб рдХрдВрдЯреЗрдирд░ рд╡рд╣ рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдЕрдВрддрд┐рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ WAR рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдмрд╛рд╣рд░реА рд╕рд░реНрд╡рд░ рдкрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


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


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


рдХреНрдпрд╛ рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдХрдВрдЯреЗрдирд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ?

рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдЯреЙрдордХреИрдЯ, рдЬреЗрдЯреНрдЯреА рдФрд░ рдЕрдВрдбрд░рдЯреЛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ TomCat рд╣реИред рдХрдВрдЯреЗрдирд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ pom.xml рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдВред


@EnableAutoConfiguration рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?

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


рдХреНрдпрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ? рд╡рд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдВ рджреЗрдЦрддрд╛ рд╣реИ?

рд╣рд╛рдБ, рдЕрдЧрд░ рдХреЛрдИ @SpringBootApplication рдПрдиреЛрдЯреЗрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ @ComponentScanning рдПрдиреЛрдЯреЗрд╢рди рд╣реЛрддрд╛ рд╣реИред


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдиреЛрдЯреЗрдЯ рд╡рд░реНрдЧ рдХреЗ рд╕рдорд╛рди рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реЗрдо рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред рдпрд╣ scanBasePackageClasses рдпрд╛ scanBasePackage рдореЗрдВ рд╡рд░реНрдЧреЛрдВ (рдпрд╛ рдкреИрдХреЗрдЬ) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреЛрдо рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

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


рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд▓реНрджреА рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдХрд░реНрдордХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред


рдХреНрдпрд╛ рдЖрдк рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рд╛рдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ ERROR, WARN, INFO рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред DEBUG рдпрд╛ TRACE рдХреЗ рд╕реНрддрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ --debug / --trace рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЧреБрдг рдЧреБрдг рдбреАрдмрдЧ / рдЯреНрд░реЗрд╕ = рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


 logging.level.root = WARN logging.level.org.springframework.web = DEBUG logging.level.org.hibernate = ERROR 

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реНрдкреНрд░рд┐рди рдмреВрдЯ рдХреЗрд╡рд▓ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓реЙрдЧ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдИрд╡реЗрдВрдЯ рд▓реЙрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ logging.file рдпрд╛ logging.path рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, application.properties рдореЗрдВ)ред


рд░рдВрдЧ рднрд░рдиреЗрд╡рд╛рд▓рд╛


ANSI рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░реЙрдкрд░реНрдЯреА рдлрд╛рдЗрд▓ рдореЗрдВ рдЗрд╕реЗ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


 logging.pattern.console=%clr(%d{yyyy-MM-dd HH:mm:ss}) {yellow} 

рдпрджрд┐ рдЖрдк рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЧрдП, рдЖрдк рдЗрд╕реЗ (YAML) рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 logging: path: /var/logs/ file: bookWarn.log level: root: WARN org. springframework: security: DEBUG 

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


All Articles