html
рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ Seed Data рдЬреЛрдбрд╝рдирд╛: рдПрдХ рд╡реНрдпрд╛рдкрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛
рд╕рд╛рдордЧреНрд░реА рд╕реВрдЪреА
- рдкрд░рд┐рдЪрдп............................................................................1
- Seed Data рдХреЛ рд╕рдордЭрдирд╛..........................................3
- 2.1 Seed Data рдХреНрдпрд╛ рд╣реИ?
- 2.2 Seed Data рдХрд╛ рдорд╣рддреНрд╡
- 2.3 Seed Data рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдФрд░ рдХрд╣рд╛рдБ рдХрд░реЗрдВ
- Spring Boot рдореЗрдВ Seed Data рд▓рд╛рдЧреВ рдХрд░рдирд╛............6
- 3.1 SeedData рдХреНрд▓рд╛рд╕ рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛
- 3.2 CommandLineRunner рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
- 3.3 Services рдХреЛ Autowire рдХрд░рдирд╛
- 3.4 Seed Data рдХреЗ рд▓рд┐рдП Conditional Logic рдЬреЛрдбрд╝рдирд╛
- 3.5 Post Instances рдмрдирд╛рдирд╛ рдФрд░ рд╕реЗрд╡ рдХрд░рдирд╛
- рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг............................................12
- 4.1 SeedData.java рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛
- 4.2 PostService рдПрдХреАрдХрд░рдг
- 4.3 Database Records рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
- рдЕрдкрдиреЗ Seed Data рдХреЛ рдЪрд▓рд╛рдирд╛ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛................18
- 5.1 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдирд╛
- 5.2 Database Console рддрдХ рдкрд╣реБрдБрдЪ рдмрдирд╛рдирд╛
- 5.3 Seed Data Entry рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛
- рдирд┐рд╖реНрдХрд░реНрд╖..............................................................................22
рдкрд░рд┐рдЪрдп
рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ Seed Data рдЬреЛрдбрд╝рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреА рд╡реНрдпрд╛рдкрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, Spring Boot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рдЪрд╛рд╣реЗ рдЖрдк рдмреИрдХрдПрдВрдб рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрджрдо рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╢реБрд░реБрдЖрддреА рд╣реЛрдВ рдпрд╛ рдЕрдкрдиреЗ рдХреМрд╢рд▓ рдХреЛ рдирд┐рдЦрд╛рд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░, рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕реАрдб рдХрд░рдирд╛ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ seed data рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЙрддрд░рддреА рд╣реИ, рдпрд╣ рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рд╣рдЬрддрд╛ рд╕реЗ рдЖрдкрдХреЗ Spring Boot рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рд╕рд╛рд░рд╛рдВрд╢
- Seed Data: рдкрд╣рд▓реЗ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рдбреЗрдЯрд╛ рдЬреЛ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рдиреЗ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рд╣реЛред
- рдЙрджреНрджреЗрд╢реНрдп: рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд╣рдЬ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░реНрдпрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рд╕реНрдерд┐рд░рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдорд╣рддреНрддреНрд╡ рдФрд░ рдЙрджреНрджреЗрд╢реНрдп
рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реАрдб рдХрд░рдирд╛ рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрддреА рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ; рдпрд╣ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдиреАрдВрд╡ рд░рдЦрддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдкреНрд░реАрд▓реЛрдб рдХрд░рдХреЗ:
- рд╕рдВрдЧрддрддрд╛: рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдкрд░реНрдпрд╛рд╡рд░рдг (рд╡рд┐рдХрд╛рд╕, рдкрд░реАрдХреНрд╖рдг, рдЙрддреНрдкрд╛рджрди) рдореЗрдВ рдПрдХ рд╕рдВрдЧрдд рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореМрдЬреВрдж рд╣реЛред
- рдХреБрд╢рд▓рддрд╛: рд╡рд┐рдХрд╛рд╕ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд░рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рдореИрдиреНрдпреБрдЕрд▓ рдбреЗрдЯрд╛ рдЗрдирдкреБрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдХреЗ рд╕рдордп рдмрдЪрд╛рддрд╛ рд╣реИред
- рдкрд░реАрдХреНрд╖рдг: рдЬреНрдЮрд╛рдд рдбреЗрдЯрд╛ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд▓рд╛рдн рдФрд░ рд╣рд╛рдирд┐рдпрд╛рдБ
рд▓рд╛рдн
рдлрд╛рдпрджреЗ | рд╡рд┐рд╡рд░рдг |
---|---|
рд╕рдВрдЧрдд рдбреЗрдЯрд╛ | рд╡рд┐рднрд┐рдиреНрди рдкрд░реНрдпрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдПрдХрд░реВрдкрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред |
рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рддреЗрдЬреА | рддреИрдпрд╛рд░ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреЗрдЬ рдХрд░рддрд╛ рд╣реИред |
рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕реБрдЧрдорддрд╛ | рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред |
рдореИрдиреНрдпреБрдЕрд▓ рдПрдВрдЯреНрд░реА рдореЗрдВ рдХрдореА | рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдЗрдирдкреБрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдиреНрдпреВрдирддрдо рдХрд░рддрд╛ рд╣реИред |
рд╣рд╛рдирд┐рдпрд╛рдБ
рд╣рд╛рдирд┐рдпрд╛рдБ | рд╡рд┐рд╡рд░рдг |
---|---|
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рд╕рдордп | Seed data scripts рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред |
рд░рдЦрд░рдЦрд╛рд╡ рдУрд╡рд░рд╣реЗрдб | рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ Seed Data рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред |
рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо | Seed scripts рдореЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдпрджрд┐ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рди рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рд╕реБрд░рдХреНрд╖рд╛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред |
Seed Data рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдФрд░ рдХрд╣рд╛рдБ рдХрд░реЗрдВ
Seed data рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд▓рд╛рднрдХрд╛рд░реА рд╣реЛрддрд╛ рд╣реИ:
- рд▓реЛрдХрд▓ рдбрд┐рд╡реЗрд▓рдкрдореЗрдВрдЯ: рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рдкреВрд░реНрд╡-рднрд░рд╛ рд╣реБрдЖ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗред
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг: рдкрд░реАрдХреНрд╖рдг рдПрдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдпреЛрдЧреНрдп рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕реНрдерд┐рд░ рд╣реЛрдВред
- рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднрд░рдирд╛ред
Seed Data рдХреЛ рд╕рдордЭрдирд╛
2.1 Seed Data рдХреНрдпрд╛ рд╣реИ?
Seed data рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдореМрд▓рд┐рдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг: рдПрдХ рдмреНрд▓реЙрдЧрд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ, seed data рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ, рдФрд░ рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
2.2 Seed Data рдХрд╛ рдорд╣рддреНрд╡
Seed data рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ:
- рд╕рдВрдЧрддрддрд╛: рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐ рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
- рдХреБрд╢рд▓рддрд╛: рд╡рд┐рдХрд╛рд╕ рдпрд╛ рд╕реЗрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдореИрдиреНрдпреБрдЕрд▓реА рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп рдХрдо рдХрд░рддрд╛ рд╣реИред
- рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛: рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреНрдЮрд╛рдд рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдирдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдмрдврд╝рддреА рд╣реИред
2.3 Seed Data рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдФрд░ рдХрд╣рд╛рдБ рдХрд░реЗрдВ
Seed data рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд▓рд╛рднрдХрд╛рд░реА рд╣реЛрддрд╛ рд╣реИ:
- рд▓реЛрдХрд▓ рдбрд┐рд╡реЗрд▓рдкрдореЗрдВрдЯ: рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рдкреВрд░реНрд╡-рднрд░рд╛ рд╣реБрдЖ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗред
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг: рдкрд░реАрдХреНрд╖рдг рдПрдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдпреЛрдЧреНрдп рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕реНрдерд┐рд░ рд╣реЛрдВред
- рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднрд░рдирд╛ред
Spring Boot рдореЗрдВ Seed Data рд▓рд╛рдЧреВ рдХрд░рдирд╛
Spring Boot рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ seed data рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдХреНрд▓рд╛рд╕ рдмрдирд╛рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬ рдХрд░рддреА рд╣реИред
3.1 SeedData рдХреНрд▓рд╛рд╕ рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛
рдЬрд╛рд╡рд╛ рдореЗрдВ, config рдкреИрдХреЗрдЬ рдХреЗ рдЕрдВрджрд░
SeedData рдирд╛рдордХ рдПрдХ рдирдпрд╛ рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВред рдпрд╣ рдХреНрд▓рд╛рд╕ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рд╣реЛрдЧреАред
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package org.studyeasy.SpringStarter.config; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import org.studyeasy.SpringStarter.services.PostService; @Component public class SeedData implements CommandLineRunner { private final PostService service; public SeedData(PostService service) { this.service = service; } @Override public void run(String... args) throws Exception { // Seed data logic goes here } } |
3.2 CommandLineRunner рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
SeedData рдХреНрд▓рд╛рд╕
CommandLineRunner рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ, рдЬреЛ рдЗрд╕реЗ Spring Boot рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рднреАрддрд░
run рдореЗрдердб seed data рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИред
3.3 Services рдХреЛ Autowire рдХрд░рдирд╛
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PostService рдХреЛ
SeedData рдХреНрд▓рд╛рд╕ рдореЗрдВ Autowire рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реЗрд╡рд╛ рдореМрдЬреВрджрд╛ рдкреЛрд╕реНрдЯреНрд╕ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдирдП рдкреЛрд╕реНрдЯреНрд╕ рдХреЛ рд╕реЗрд╡ рдХрд░рдиреЗ рдЬреИрд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддреА рд╣реИред
1 2 3 |
@Autowired private PostService service; |
3.4 Seed Data рдХреЗ рд▓рд┐рдП Conditional Logic рдЬреЛрдбрд╝рдирд╛
Seed data рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдореМрдЬреВрдж рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдЗрд╕рд╕реЗ рдбреБрдкрд▓реАрдХреЗрд╢рди рд░реЛрдХрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ seed data рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рд╣реА рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред
1 2 3 4 5 6 7 8 |
@Override public void run(String... args) throws Exception { List<Post> posts = service.getAll(); if (posts.size() == 0) { // Add seed data } } |
3.5 Post Instances рдмрдирд╛рдирд╛ рдФрд░ рд╕реЗрд╡ рдХрд░рдирд╛
рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдирдП Post instances рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде populated рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░
PostService рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрд╡ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
1 2 3 4 5 6 7 8 9 10 11 12 |
if (posts.size() == 0) { Post post1 = new Post(); post1.setTitle("Post 1"); post1.setBody("This is the first seed post."); service.save(post1); Post post2 = new Post(); post2.setTitle("Post 2"); post2.setBody("This is the second seed post."); service.save(post2); } |
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдЧрд╣рд░реА рд╕рдордЭ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП SeedData.java рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рдХрд░реЗрдВред
4.1 SeedData.java рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package org.studyeasy.SpringStarter.config; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import org.studyeasy.SpringStarter.services.PostService; import org.studyeasy.SpringStarter.models.Post; import java.util.List; @Component public class SeedData implements CommandLineRunner { private final PostService service; public SeedData(PostService service) { this.service = service; } @Override public void run(String... args) throws Exception { List<Post> posts = service.getAll(); if (posts.size() == 0) { Post post1 = new Post(); post1.setTitle("Post 1"); post1.setBody("This is the first seed post."); service.save(post1); Post post2 = new Post(); post2.setTitle("Post 2"); post2.setBody("This is the second seed post."); service.save(post2); } } } |
рдореБрдЦреНрдп рдШрдЯрдХ:
- @Component: рдХреНрд▓рд╛рд╕ рдХреЛ Spring рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рд╕реНрдХреИрдирд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- CommandLineRunner: рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрджрд░реНрдн рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- PostService: рдПрдХ рд╕реЗрд╡рд╛ рдХреНрд▓рд╛рд╕ рдЬреЛ Post рдПрдВрдЯрд┐рдЯреАрдЬрд╝ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬреИрд╕реЗ рд╕рднреА рдкреЛрд╕реНрдЯреНрд╕ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдирдП рдкреЛрд╕реНрдЯреНрд╕ рдХреЛ рд╕реЗрд╡ рдХрд░рдирд╛ред
рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣:
- рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди: PostService
рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
SeedDataрдХреНрд▓рд╛рд╕ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- Run рдореЗрдердб рдирд┐рд╖реНрдкрд╛рджрди: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░, run
рдореЗрдердб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред
- рдбреЗрдЯрд╛ рдЬрд╛рдВрдЪ: рд╕рднреА рдореМрдЬреВрджрд╛ рдкреЛрд╕реНрдЯреНрд╕ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рднреА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ (posts.size() == 0
), рддреЛ рдпрд╣ seed data рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред
- рдкреЛрдЬрд╝реНрдЯреНрд╕ рдмрдирд╛рдирд╛: рдирдП Post
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЗрдВрд╕реНрдЯреИрдВрдЯрд┐рдПрдЯ рдХрд░рддрд╛ рд╣реИ, рдЙрдирдХреЗ рд╢реАрд░реНрд╖рдХ рдФрд░ рдмреЙрдбреА рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░
PostServiceрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд╕реЗрд╡ рдХрд░рддрд╛ рд╣реИред
4.2 PostService рдПрдХреАрдХрд░рдг
PostService рдПрдВрдЯрд┐рдЯреАрдЬрд╝ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рд╕рднреА рдкреЛрд╕реНрдЯреНрд╕ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛: рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рднреА рдореМрдЬреВрджрд╛ рдкреЛрд╕реНрдЯреНрд╕ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
- рдкреЛрд╕реНрдЯреНрд╕ рдХреЛ рд╕реЗрд╡ рдХрд░рдирд╛: рдирдП Post instances рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдпреА рдмрдирд╛рддрд╛ рд╣реИред
PostService рдХрд╛ рдирдореВрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package org.studyeasy.SpringStarter.services; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.studyeasy.SpringStarter.models.Post; import org.studyeasy.SpringStarter.repositories.PostRepository; import java.util.List; @Service public class PostService { @Autowired private PostRepository postRepository; public List<Post> getAll() { return postRepository.findAll(); } public void save(Post post) { postRepository.save(post); } } |
4.3 Database Records рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛
Post рдореЙрдбрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдбреЗрдЯрд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ
id,
title,
body, рдФрд░
createdAt рдЬреИрд╕реЗ рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
Post.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
package org.studyeasy.SpringStarter.models; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.Date; @Entity public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Getter @Setter private String title; @Getter @Setter private String body; @Getter private Date createdAt; @PrePersist protected void onCreate() { createdAt = new Date(); } } |
рдореБрдЦреНрдп рдПрдиреЛрдЯреЗрд╢рдиреНрд╕:
- @Entity: рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕ рдПрдХ рдПрдВрдЯрд┐рдЯреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓ рд╕реЗ рдореИрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- @Id рдФрд░ @GeneratedValue: рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдФрд░ рдЗрд╕рдХреА рдЬрдирд░реЗрд╢рди рд░рдгрдиреАрддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред
- @Getter рдФрд░ @Setter: Lombok рдПрдиреЛрдЯреЗрд╢рдиреНрд╕ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ getter рдФрд░ setter рдореЗрдердбреНрд╕ рдХреЛ рдЬреЗрдирд░реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
- @PrePersist: рдПрдХ рд▓рд╛рдЗрдлрд╕рд╛рдЗрдХрд▓ рдХреЙрд▓рдмреИрдХ рд╣реИ рдЬреЛ рдкрд░реНрд╕рд┐рд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ createdAt
рдЯрд╛рдЗрдорд╕реНрдЯреИрдВрдк рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдЕрдкрдиреЗ Seed Data рдХреЛ рдЪрд▓рд╛рдирд╛ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛
рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдиреЗ seed data рд▓реЙрдЬрд┐рдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд▓рд┐рдпрд╛, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдирд╛ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ seed data рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
5.1 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдирд╛
рдЕрдкрдиреЗ Spring Boot рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ рдХрд░реЗрдВред рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░, SeedData рдХреНрд▓рд╛рд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдЧреА, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧреА рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ seed data рдЬреЛрдбрд╝реЗрдЧреАред
1 2 |
./mvnw spring-boot:run |
5.2 Database Console рддрдХ рдкрд╣реБрдБрдЪ рдмрдирд╛рдирд╛
рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ, рдЖрдорддреМрд░ рдкрд░ http://localhost:8080/h2-console рдкрд░ рд╕реБрд▓рдн рд╣реЛрддрд╛ рд╣реИ (рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдк H2 рдХреЛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред
5.3 Seed Data Entry рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛
рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:
- рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ: рдЕрдкрдиреЗ application.properties
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ JDBC URL, рдпреВрдЬрд░рдиреЗрдо, рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░реЗрдВред
- рдПрдХ рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рдПрдВ: рд╕рднреА рдкреЛрд╕реНрдЯреНрд╕ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SQL рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
1 2 |
SELECT * FROM POST; |
рдирдореВрдирд╛ рдЖрдЙрдЯрдкреБрдЯ:
ID | рд╢реАрд░реНрд╖рдХ | рд╢рд░реАрд░ | рдирд┐рд░реНрдорд┐рдд_рдкрд░ |
---|---|---|---|
1 | Post 1 | This is the first seed post. | 2023-10-01 10:00:00 |
2 | Post 2 | This is the second seed post. | 2023-10-01 10:00:05 |
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдореЗрдВ, рд╣рдордиреЗ Seed Data рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ Spring Boot рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рднреАрддрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИред Seed data рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрдЧрддрддрд╛, рдХреБрд╢рд▓рддрд╛, рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖
- Seed Data: рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХред
- Spring Boot рдПрдХреАрдХрд░рдг: Seed data рдХреЛ рд╕рд╣рдЬрддрд╛ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CommandLineRunner рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧред
- рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдБ: рдбреБрдкреНрд▓рд┐рдХреЗрд╢рди рд░реЛрдХрдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП seed data рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ред
- рд╕рддреНрдпрд╛рдкрди: рд╕рдЯреАрдХрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрд╢рд╛ seed data рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВред
рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ seed data рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдХреЗ, рдЖрдк рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕реБрдЧрдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкрд░реНрдпрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред
рдиреЛрдЯ: рдпрд╣ рд▓реЗрдЦ AI рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред