рд╣реИрд▓реЛ, рд╣рдмреНрд░реЛрд╕реНрдХ рдирд╛рдЧрд░рд┐рдХреЛрдВ! рд▓рдВрдмрд╛ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧреА рдЕрдиреБрд╡рд╛рдж рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЖрдЬ рд╣рдо рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕рд╛рдордЧреНрд░реА "рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░" рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░ рдПрдХ рдирдП рд╕рдореВрд╣ рдХреА рднрд░реНрддреА рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдЬреЛ 28 рдордИ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдХрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдХреБрдЫ рдкреНрд░рд╕рд┐рджреНрдз рдкреИрдЯрд░реНрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
- рдкреНрд░реЙрдХреНрд╕реА (рдЙрдк)
- рд╕рд┐рдВрдЧрд▓рдЯрди (рдЕрдХреЗрд▓реЗ)
- рдлреИрдХреНрдЯрд░реА (рдлреИрдХреНрдЯрд░реА)
- рдЯреЗрдореНрдкрд▓реЗрдЯ (рдЯреЗрдореНрдкрд▓реЗрдЯ)
- рдореЙрдбрд▓ рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХ
- рд╕рд╛рдордиреЗ рдирд┐рдпрдВрддреНрд░рдХ
- рд╣реЗрд▓реНрдкрд░ рджреЗрдЦреЗрдВ
- рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрд▓рдЯрд╛ (IoC) (рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдЙрд▓рдЯрд╛)
- рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░
- рдСрдмреНрдЬрд░реНрд╡рд░-рдирдореВрджрд╛рд░ (рдкреНрд░реЗрдХреНрд╖рдХ)
- рдкреНрд░рд╕рдВрдЧ рд╡рд╕реНрддреБ
рдкреНрд░реЙрдХреНрд╕реА (рдЙрдк)
рдкреНрд░реЙрдХреНрд╕реА рдкреИрдЯрд░реНрди AOP рдФрд░ рд░реАрдореЛрдЯрд┐рдВрдЧ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ org.springframework.aop.framework.ProxyFactoryBean ред
рдпрд╣ рдХрд╛рд░рдЦрд╛рдирд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреАрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ AOP рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдмрдирд╛рддрд╛ рд╣реИред
рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХрд┐рд╕реА рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЙрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
рдпрд╣рд╛рдБ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред
рд╕рд┐рдВрдЧрд▓рдЯрди (рдЕрдХреЗрд▓реЗ)
рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдореЗрдореЛрд░реА рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдЬреЛ рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдореЗрдВ, рдмреАрди рдХрд╛ рджрд╛рдпрд░рд╛ (рд╕реНрдХреЛрдк) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд┐рдВрдЧрд▓рдЯрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ IoC рдХрдВрдЯреЗрдирд░ рд╕реНрдкреНрд░рд┐рдВрдЧ IoC рдХрдВрдЯреЗрдирд░ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдареАрдХ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ рдЗрд╕ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рд┐рдВрдЧрд▓рдЯрди рдмрд┐рди рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛, рдФрд░ рдЗрд╕ рдмрд┐рди рдХреЗ рд╕рднреА рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рд▓рд┐рдВрдХ рдХреЛ рдХреИрд╢реНрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдмреАрдиреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЧрд▓рдЯрди рд╕реНрдХреЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдмреАрди рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ singleton
рдпрд╛ prototype
рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рдмреАрди рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
Xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди:
<bean id = "..." class = "..." scope = "singleton/prototype"> </bean>
рдЖрдк рдпрд╣рд╛рдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдлреИрдХреНрдЯрд░реА (рдлреИрдХреНрдЯрд░реА)
рдпрд╣ рдкреИрдЯрд░реНрди рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдлрд╝реИрдХреНрдЯрд░реА рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреАрди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реИрдХреНрдЯрд░реА рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
BeanFactory
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдВрдЯреЗрдирд░ рдЬреЛ DI (рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди, рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди) рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред org.springframework.beans.factory.BeanFactory
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
ApplicationContext
рд╡рд╕рдВрдд рдореЗрдВ рдореМрдЬреВрдж рдПрдХ рдФрд░ рдХрдВрдЯреЗрдирд░ рдЬреЛ рдЙрджреНрдпрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдкрдврд╝рдиреЗ рдФрд░ рдЗрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдИрд╡реЗрдВрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП org.springframework.context.ApplicationContext
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ ApplicationContext
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред
FileSystemXmlApplicationContext
- рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдЖрдкрдХреЛ рд╕реЗрдо рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде XML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
ClassPathXmlApplicationContext
- рдЖрдкрдХреЛ XML рдлрд╝рд╛рдЗрд▓ рдХреЛ CLASSPATH рдореЗрдВ рд╕реЗрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
XmlWebApplicationContext
- рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ XmlWebApplicationContext
рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде XML рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
package com.eduonix.springframework.applicationcontext; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class App { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext( "C:/work/IOC Containers/springframework.applicationcontext/src/main/resources/bean-factory-config.xml"); HelloApplicationContext obj = (HelloApplicationContext) context.getBean("helloApplicationContext"); obj.getMsg(); } }
рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдкрд╣рд▓рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди:
<bean id="welcomerBean" class="com.mysite.Welcomer" factory-method="createWelcomer"> <constructor-arg ref="messagesLocator"></constructor-arg> </bean> <bean id="messagesLocator" class="com.mysite.MessageLocator"> <property name="messages" value="messages_file.properties"></property> </bean>
рдФрд░ рдЕрдм рдмреАрди:
public class Welcomer { private String message; public Welcomer(String message) { this.message = message; } public static Welcomer createWelcomer(MessageLocator messagesLocator) { Calendar cal = Calendar.getInstance(); String msgKey = "welcome.pm"; if (cal.get(Calendar.AM_PM) == Calendar.AM) { msgKey = "welcome.am"; } return new Welcomer(messagesLocator.getMessageByKey(msgKey)); } }
рдЖрдк рдпрд╣рд╛рдВ рдлреИрдХреНрдЯреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЯреЗрдореНрдкрд▓реЗрдЯ (рдЯреЗрдореНрдкрд▓реЗрдЯ)
рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рд░-рдмрд╛рд░ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб (рдЬреИрд╕реЗ рд╕рдорд╛рдкрди рдХрдиреЗрдХреНрд╢рди, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JdbcTemplate , JmsTemplate , JpaTemplate ( рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдзреНрдпрд╛рди рджреЗрдВ: JpaTemplate рдХреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ 3.1 рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ )ред
рдЖрдк рдпрд╣рд╛рдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдореЙрдбрд▓ рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХ
рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдорд╡реАрд╕реА рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдирд┐рдпрдВрддреНрд░рдХ POJO рд╣реИрдВ, рди рдХрд┐ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рджреГрд╢реНрдп рдХрд╛ рддрд╛рд░реНрдХрд┐рдХ рдирд╛рдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рджреГрд╢реНрдп рдХреА рдкрд╕рдВрдж ViewResolver
рдЫреЛрдбрд╝ рджреА ViewResolver
ред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╕реНрддреБрддрд┐ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред
рдЖрдк рдпрд╣рд╛рдВ рдореЙрдбрд▓ рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд╛рдордиреЗ рдирд┐рдпрдВрддреНрд░рдХ
рд╕реНрдкреНрд░рд┐рдВрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рд╕реНрдкреИрдЪрд░рд╕рд░реНрд╡рд▓реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рдЕрдиреБрд░реЛрдз рдЖрдкрдХреЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдПред
рдлреНрд░рдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрдВрджреНрд░реАрдХреГрдд рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕рднреА рдЕрдиреБрд░реЛрдз рдПрдХ рд╣реА рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВред рдпрд╣ рд╣реИрдВрдбрд▓рд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд, рдЕрдзрд┐рдХреГрдд, рдкрдВрдЬреАрдХреГрдд рдпрд╛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдЙрдкрдпреБрдХреНрдд рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рджреЗ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рдпрд╣рд╛рдВ рдлреНрд░рдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╣реЗрд▓реНрдкрд░ рджреЗрдЦреЗрдВ
рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рдЕрд▓рдЧ рдХреЛрдб рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд┐рдВрдЧ рдореЗрдВ рдХрдИ рдХрд╕реНрдЯрдо рд╡реЗрд▓реЛрд╕рд┐рдЯреА рдЬреЗрдПрд╕рдкреА рдЯреИрдЧ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ рд╣реИрдВред
рд╡реНрдпреВ рд╣реЗрд▓реНрдкрд░ рд╕реНрдЯреИрдЯрд┐рдХ рдХрдВрдЯреЗрдВрдЯ рдХреЛ рдПрдХ рджреГрд╢реНрдп рдореЗрдВ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЬреЗрдПрд╕рдкреА, рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рд╕реЗред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдФрд░ рд╕реНрдЯреНрд░рдЯреНрд╕ рдЬреИрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ JSP рдлрд╝рд╛рдЗрд▓реЛрдВ рдЬреИрд╕реЗ рдХрд┐рд╕реА рджреГрд╢реНрдп рдореЗрдВ рддрд░реНрдХ рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдорджрджрдЧрд╛рд░реЛрдВ рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдХреЛ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреИрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЖрдк рдпрд╣рд╛рдБ рд╡реНрдпреВ рд╣реЗрд▓реНрдкрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрд▓рдЯрд╛ (IOC) (рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдЙрд▓рдЯрд╛)
рд╡рд╕рдВрдд рдореЗрдВ IoC рдХрдВрдЯреЗрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ, рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ, рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдЙрдирдХреЗ рд╕рдВрдкреВрд░реНрдг рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЛ рдкреВрд░реНрдг рд╡рд┐рдирд╛рд╢ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдШрдЯрдХреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди (DI) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреАрдиреНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдк рдпрд╣рд╛рдБ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░
ServiceLocatorFactoryBean
рдПрдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рднреА рдлрд▓рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдирд╛рдо рд╕реЗ рдПрдХ рд╕реЗрд╡рд╛ (рдмреАрди) рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрд╕ рдШрдЯрдХ рдХреЛ рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдХреЛ рдмреАрди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд┐рдВрдЧ-рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╣рдо рдЬреЗрдПрдирдбреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред JNDI рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЙрдЪреНрдЪ рд▓рд╛рдЧрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░ рдЬреЗрдПрдирдбреАрдЖрдИ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдХреА рдЦреЛрдЬ рдХреИрд╢ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддреА рд╣реИред
рдЖрдк рдпрд╣рд╛рдВ рд╕реЗрд╡рд╛ рд▓реЛрдХреЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдСрдмреНрдЬрд░реНрд╡рд░-рдирдореВрджрд╛рд░ (рдкреНрд░реЗрдХреНрд╖рдХ)
ApplicationContext
рдЗрд╡реЗрдВрдЯ рдЗрдВрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЬрдм рдПрдХ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ, рддреЛ рдЙрд╕рдХреЗ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдзрд┐рд╕реВрдЪрд┐рдд рдФрд░ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЖрдк рдпрд╣рд╛рдВ рдСрдмреНрдЬрд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рд╕рдВрдЧ рд╡рд╕реНрддреБ
рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯ рдкреИрдЯрд░реНрди рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрд╛рдзреНрдп рдХрд┐рдП рдмрд┐рдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдиреНрдп рднрд╛рдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдбреЗрдЯрд╛ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИред
ApplicationContext , рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрдВрджреНрд░реАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред
рдЖрдк рдпрд╣рд╛рдБ рд╕рдВрджрд░реНрдн рд╡рд╕реНрддреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрджрд░реНрдн
https://stackoverflow.com/questions/755563/what-design-patterns-are-used-in-spring-framework
рдпрд╣рд╛рдБ рдРрд╕реА рд╕рд╛рдордЧреНрд░реА рд╣реИред рд╣рдо рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирд┐рдГрд╢реБрд▓реНрдХ рд╡реЗрдмрд┐рдирд╛рд░ рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рд╣рдо UI, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реНрдг рдХреНрд▓рд╛рд╕рд┐рдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗред рд╣рдо рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рднреА рдЕрдзреНрдпрдпрди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдХреА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рд╡реЗрдмрд┐рдирд╛рд░ рдЖрдЬ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред