java-object-merger - рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд┐рд░реНрдл рдПрдХ рдореИрдкрд░ рд╕реЗ рдЕрдзрд┐рдХ

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

рдпреБрдкреАрдбреАред рдХреЗрдВрджреНрд░реАрдп рдорд╛рд╡реЗрди рднрдВрдбрд╛рд░ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛
<dependency> <groupId>net.sf.brunneng.jom</groupId> <artifactId>java-object-merger</artifactId> <version>0.8.5.1</version> </dependency> 


UPD2 ред рд╕рдВрд╕реНрдХрд░рдг 0.8.4





рдСрдмреНрдЬреЗрдХреНрдЯ рдореИрдкрд░реНрд╕ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣реИрдВ?

рд╕рд░рд▓ рдЙрддреНрддрд░: рдПрдХ рд╡рд╕реНрддреБ рд╕реЗ рджреВрд╕рд░реА рд╡рд╕реНрддреБ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░рдирд╛ред рд▓реЗрдХрд┐рди рддрдм рдЖрдк рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ: рдЖрдкрдХреЛ рдЗрд╕ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдХреЛрдИ рд╕рдВрджреЗрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдмрд╣реБрдд рдмрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрддрдГ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдпрд╣ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд░рддреЛрдВ рдореЗрдВ рд╣рд░рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИ: рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХреНрд╕реЗрд╕ рд▓реЗрдпрд░, рдПрдХ рд╡реНрдпрд╡рд╕рд╛рдп рдФрд░ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ / рд╡реЗрдм рд╕реЗрд╡рд╛ред рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рдд рдЖрдорддреМрд░ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдореИрдкрд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдмрд╕рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪрд▓реЛ рдЙрдиреНрд╣реЗрдВ рдбреАрдЯреАрдУ (рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ) рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реИрдВред рдПрдХ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ, рд╡реЗ рдХреЗрд╡рд▓ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рд╕реНрддреБрддрд┐ / рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреА рдкрд░рдд рдкрд░, рдХреНрд▓рд╛рдЗрдВрдЯ (рдмреНрд░рд╛рдЙрдЬрд╝рд░ / рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ) рдХреЛ рдбреЗрдЯрд╛ рдкрд╣реБрдВрдЪрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВред рдЪрд▓реЛ рдЙрдиреНрд╣реЗрдВ VO (рджреЗрдЦреЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ) рдХрд╣рддреЗ рд╣реИрдВред рд╡реАрдУ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЗ рдХреЗрд╡рд▓ рднрд╛рдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдбреАрдЯреАрдУ рдореЗрдВ рд╣реИ, рдпрд╛ рдПрдХрд╛рдзрд┐рдХ рдбреАрдЯреАрдУ рд╕реЗ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реИред рд╡реЗ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдбреАрдЯреАрдУ рдХреЛ рд╕реАрдзреЗ рдПрдХ рджреГрд╢реНрдп рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдмрд┐рд▓рдХреБрд▓ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрднреА-рдХрднреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмреАрдУ (рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ) рдХреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкрд░рдд рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рдбреАрдЯреАрдУ рдкрд░ рд░реИрдкрд░ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рддрд░реНрдХ рд╣реИрдВ: рдмрдЪрдд, рд╕рдВрд╢реЛрдзрди, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдВрдЪрд╛рд▓рдиред рдЗрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл, рдПрдХ рдХрд╛рд░реНрдп рд╡рд┐рднрд┐рдиреНрди рдкрд░рддреЛрдВ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдарддрд╛ рд╣реИред рдХрд╣рддреЗ рд╣реИрдВ, рдбреАрдЯреАрдУ рд╕реЗ рд╡реАрдУ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рдирдХреНрд╢рд╛ рднрд╛рдЧред рдпрд╛ VO рд╕реЗ BO рддрдХ рдФрд░ рдлрд┐рд░ рдЬреЛ рд╣реБрдЖ рдЙрд╕реЗ рдмрдЪрд╛рдПрдВред

рдпрджрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ "рдбрдВрдм" рдХреЛрдб рдорд┐рд▓рддрд╛ рд╣реИ:
 тАж employeeVO.setPositionName(employee.getPositionName()); employeeVO.setPerson(new PersonVO()); PersionVO personVO = employeeVO.getPerson(); PersonDTD person = employee.getPerson(); personVO.setFirstName(person.getFirstName()); personVO.setMiddleName(person.getMiddleName()); personVO.setLastName(person.getLastName()); ... 

рдХреНрдпрд╛ рд╡рд╣ рдкрд░рд┐рдЪрд┐рдд рд╣реИ? :) рдЕрдЧрд░ рд╣рд╛рдБ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдЦреБрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИред

рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдореИрдкрд░

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

рдХреНрдпрд╛ рдЦрд░рд╛рдм рд╣реИ рдбреЛрдЬрд░

  1. рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦрд░рд╛рдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди (рдХреЗрд╡рд▓ @Mapping )ред
  2. рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд╛рдо, рдЙрдкрдирд╛рдо рдФрд░ рд╕рдВрд░рдХреНрд╖рдХ рд╕реЗ рдкреВрд░рд╛ рдирд╛рдо рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред
  3. рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдг рдореИрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ред рдпрджрд┐ рдкреИрд░реЗрдВрдЯ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ рдРрд╕рд╛ рдЧреИрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЬреЗрдиреЗрд░рд┐рдХ рдЯрд╛рдЗрдк T рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ , T , T. IEntity, , ..
    рд╕рдВрдкрддреНрддрд┐ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЖрдВрддрд░рд┐рдХ рдбреЙрд╕рд░ рдХреИрд╢ рдореЗрдВ рддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд░реНрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓реЛрдбрд░ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдСрд╕реНрдХрд░ рдПрдХ рдмрдВрдбрд▓ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдмреАрди рдХреНрд▓рд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдУрд╕реНрдЧреА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред рд╣рдордиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд╛рдмреВ рдХрд░ рд▓рд┐рдпрд╛, рднрд▓реЗ рд╣реА рдПрдХ рдорд╛рдирдХ рддрд░реАрдХреЗ рд╕реЗ - рд╡рд╛рдВрдЫрд┐рдд рд▓реЛрдбрд░ рд╡рд░реНрдЧ рдХреЛ рдлрд┐рд╕рд▓рдиреЗ рд╕реЗ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЦреБрдж: рдХрдХреНрд╖рд╛ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдХреНрд░рдо рдореЗрдВ рд╣реИ рдХрд┐ рд╣рдо рдкрд░рдорд┐рдЯ рдЬрдирд░рд▓ рд╕реНрдкреЗрд╕ рд╕реНрдорд╛рд░рдХ рди рдмрдирд╛рдПрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред
    рдЕрдЧрд░ рдХреЛрдИ рдЪреАрдЬрд╝ рдЕрдЪрд╛рдирдХ рд╕реЗ рдирд╣реАрдВ рдмрдирддреА рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рдбреЙрд╕рд░ рдХреЛ рдбрд┐рдмреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпреЛрдВред рд╡рд╣рд╛рдБ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рд╣реИ ... OOP рдкреИрдЯрд░реНрди рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдкрд╛рдЧрд▓ рдвреЗрд░ - рд╕рдм рдХреБрдЫ рднреНрд░рдорд┐рдд рд╣реИ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╣реИред

    рдореИрдкрд░ рдореЗрдВ рдХреНрдпрд╛ рдЧреБрдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

    1. рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реНрдпрд╛рдкрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд░реНрдердиред
    2. рдкреВрд░реНрдг рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд░реНрдердиред
    3. рдПрдХ рд╕рд╛рдл, рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб рдЬрд┐рд╕реЗ рдХреЛрдИ рднреА рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред
    4. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд┐рдирд╛, рдЗрд╕реЗ рдЙрд╕ рддрд░реАрдХреЗ рд╕реЗ рдореИрдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛ред
    5. рдпрд╣ рдареАрдХ рд╕реЗ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдбреЛрдЬрд░ рд╕реЗ рдмрджрддрд░ рдирд╣реАрдВ)ред


    рд╡рд┐рд▓рдп рдФрд░ рдореИрдкрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ?

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

    рдХреЗ рдЙрдкрдпреЛрдЧ

    "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

     import net.sf.brunneng.jom.IMergingContext; import net.sf.brunneng.jom.MergingContext; public class Main { public static class A1 { private String field1; public String getField1() { return field1; } public void setField1(String field1) { this.field1 = field1; } } public static class A2 { private String field1; public A2(String field1) { this.field1 = field1; } public String getField1() { return field1; } } public static void main(String[] args) { IMergingContext context = new MergingContext(); A2 a2 = new A2("Hello world!"); A1 a1 = context.map(a2, A1.class); System.out.println(a1.getField1()); } } 


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

    рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдорд╛рдирдЪрд┐рддреНрд░ рд╡рд┐рдзрд┐ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рдмрд╛рддреЗрдВ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред

     @Override public <T> T map(Object source, Class<T> destinationClass) { Snapshot sourceSnapshot = createSnapshot(source); Snapshot destSnapshot = null; if (sourceSnapshot.getRoot().getType().equals(DataNodeType.BEAN)) { Object identifier = ((BeanDataNode)sourceSnapshot.getRoot()).getIdentifier(); if (identifier != null) { destSnapshot = createSnapshot(destinationClass, identifier); } } if (destSnapshot == null) { destSnapshot = createSnapshot(destinationClass); } Diff diff = destSnapshot.findDiffFrom(sourceSnapshot); diff.apply(); return (T)destSnapshot.getRoot().getObject(); } 


    рдпрджрд┐ рд╕реНрд░реЛрдд рд╕реНрдиреИрдкрд╢реЙрдЯ рдПрдХ рдмрд┐рди рд╣реИ, рдФрд░ рдпрджрд┐ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ, рддреЛ IBeanFinder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдВрддрд╡реНрдп рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдмреАрди рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ [рдпрд╣рд╛рдБ createSnapshot(destinationClass, identifier); ]ред рд╣рдордиреЗ рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рд╕реЗрдо рдХреЛ рдЙрдкрдпреБрдХреНрдд IObjectCreator [рдпрд╣рд╛рдБ createSnapshot(destinationClass) ] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдордиреЗ рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╛рдирдХ рд╡рд┐рддрд░рдг рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рд╕реНрд░реЛрдд рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕реЗ рдЕрдВрддрд░ рдХреЛ рд▓рдХреНрд╖реНрдп рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд▓рдХреНрд╖реНрдп рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╣ рд╕рдм рд╣реИред

    рд╡реИрд╕реЗ, рдЗрд╕ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░, рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
     MODIFY { dest object : Main$A1@28a38b58 src object : Main$A2@76f8d6a6 ADD { dest property : String field1 = null src property : String field1 = "Hello world!" } } 


    рдХреБрдВрдЬреА рдПрдиреЛрдЯреЗрд╢рди

    рд╡реЗ рдкреИрдХреЗрдЬ net.sf.brunneng.jom.annotations ред
    • @Mapping - рдПрд╕реЛрд╕рд┐рдПрд╢рди рдХреЗ рджреВрд╕рд░реЗ рдЫреЛрд░ рдкрд░ рдореИрдкрд┐рдВрдЧ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдкрде рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, тАЬemployee.person.firstNameтАЭ ред @Mapping тАЬemployee.person.firstNameтАЭ )ред рд▓рдХреНрд╖реНрдп рдпрд╛ рд╕реНрд░реЛрдд рд╡рд╕реНрддреБ рдХреА рдХрдХреНрд╖рд╛ рдореЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
    • @Skip - рдХреНрд╖реЗрддреНрд░ рд╕реНрдиреИрдкрд╢реЙрдЯ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдпрд╣ рдореИрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
    • @Identifier - рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмреАрди рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрдЧреНрд░рд╣ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЬрд╛рдиреЗрдВрдЧреЗ рдХрд┐ рдХрд┐рд╕ рд╡рд╕реНрддреБ рдХреА рддреБрд▓рдирд╛ рдХрд┐рд╕ рд╡рд╕реНрддреБ рд╕реЗ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЕрд░реНрдерд╛рддреН, рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдЖрд╡реЗрджрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдмрд┐рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рдкрдВрдЬреАрдХреГрдд IBeanFinder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдмрд┐рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, IBeanFInder рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП IBeanFInder рдЦреЛрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
    • @MapFromMany - @MapFromMany рд░реВрдк рдореЗрдВ рд╣реА рд▓рдХреНрд╖реНрдп рд╡рд╕реНрддреБ рдХреЗ рд╡рд░реНрдЧ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЧреБрдг рдХреА рдПрдХ рд╕рд░рдгреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд▓рдХреНрд╖реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдкрд░ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
    • @Converter - рдЖрдкрдХреЛ рд╡рд░реНрдЧ PropertyConverter рдкрд░ @Converter PropertyConverter рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ PropertyConverter ред - рд╡рд╣ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░реЗрдЧрд╛ред рдкреНрд░реЙрдкрд░реНрдЯреА рдХрдиреНрд╡рд░реНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдХрдИ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдПрдХ рдореЗрдВ рдореИрдк рдХрд░ рд░рд╣рд╛ рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕реЗ рдмрд╕ рд╕реНрд░реЛрдд рд╕реЗ рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдирд╕реЗ рдПрдХ рдореВрд▓реНрдп рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред
    • @OnPropertyChange, @OnBeanMappingStarted, @OnBeanMappingFinished - рдЖрдк рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдмреАрди рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореИрдкрд┐рдВрдЧ рдЬреАрд╡рди рдЪрдХреНрд░ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдирддреЗ рд╣реИрдВред
    • рдФрд░ рдЕрдиреНрдпред


    рд░реВрдкрд╛рдВрддрд░рдг рдЯрд╛рдЗрдк рдХрд░реЗрдВ

    IMergingContext рдореЗрдВ рдЖрдк рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗ рджреВрд╕рд░реЗ ( TypeConverter рдЗрдВрдЯрд░рдлрд╝реЗрд╕) рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреЗ рдорд╛рдирдХ рд╕реЗрдЯ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
    • рдЖрд╡рд░рдг рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░
    • рджрд┐рдирд╛рдВрдХ рд░реВрдкрд╛рдВрддрд░рдг
    • рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ
    • рдПрдиреНрд╕ рдЯреВ рдПрдиреБрдореНрд╕, рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЯреВ рдПрдирдореНрд╕ рдмрд╛рдп рдПрдирдо рдПрдВрдпрдо


    рд╡рд╕реНрддреБрдУрдВ рдХреА рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ

    рдореИрдкрд░ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ:
    1. рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ: рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░, java.lang рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ, рджрд┐рдирд╛рдВрдХ, рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рд░рдгрд┐рдпрд╛рдБред рдорд╛рди рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ IMergingConext рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
    2. рд╕рдВрдЧреНрд░рд╣ рд╕рд░рдгрд┐рдпрд╛рдБ рд╣реИрдВ, рд╕рднреА java.util.Collection рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИрдВред
    3. рдирдХреНрд╢реЗ рд╕рднреА java.util.Map рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВред
    4. рдмреАрдиреНрд╕ рд╕рднреА рдмрд╛рдХреА рд╣реИрдВред


    рдЙрддреНрдкрд╛рджрдХрддрд╛

    рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЬрдм рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛, рдореИрдВрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд╕реЛрдЪрд╛ред рд╣рд╛рдВ, рдФрд░ рд╢реБрд░реВ рдореЗрдВ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдХреЛрдИ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рдкреНрд░рддрд┐ рдкрд░реАрдХреНрд╖рдг рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореИрдкрд┐рдВрдЧ рд╕рдордп N рдмрд╛рд░ рдорд╛рдкрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб ред рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореВрд▓реНрдп рдХреНрд╖реЗрддреНрд░, рдмрдЪреНрдЪреЗ рдХреЗ рдбрд┐рдмреНрдмреЗ, рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдирдХреНрд╢реЗ рд╣реИрдВред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдбреЛрдЬрд░ рдиреЗ рдЗрд╕ рд╕рдордп рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 5.4.0 рд▓рд┐рдпрд╛ред рдЙрдиреНрд╣реЗрдВ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдбреЙрд╕рд░ рдХреЛрдИ рднреА рдореМрдХрд╛ рдирд╣реАрдВ рдЫреЛрдбрд╝реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рдирд┐рдХрд▓рд╛! рдбреЛрдЬрд░ рдиреЗ 32 рд╕реЗрдХрдВрдб рдореЗрдВ 5000 рдЯреЗрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ 8 рд╕реЗрдХрдВрдб рдореЗрдВ рдЬрд╛рд╡рд╛-рдСрдмреНрдЬреЗрдХреНрдЯ-рдорд░реНрдЬрд░ 50,000 рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдореИрдк рдХрд┐рдпрд╛ред рдЕрдВрддрд░ рдХреБрдЫ рдЬрдВрдЧрд▓реА рд╣реИ - 40 рдмрд╛рд░ ...

    рдЖрд╡реЗрджрди

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

    рдЖрд▓рд╕реА рд╕реНрдиреИрдкрд╢реЙрдЯ

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

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

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

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


All Articles