ูุจู ุดูุฑูู ุ ุชู
ูุดุฑ ู
ูุดูุฑ ู
ูุตู ุญูู ุชุญู
ูู ุงููุตูู ุนูู JVM ูู ู
ููู ุงูุดุฎุตู . ุจุนุฏ ูุฐุง ุงูุญุฏูุซ ุ ุทุฑุญ ุฒู
ูุงุฆู ุณุคุงููุง ุฌูุฏูุง: ู
ุง ุงูุขููุฉ ุงูุชู ูุณุชุฎุฏู
ูุง Spring ูุชุญููู ุงูุชููููุงุช ูููู ูุชู
ุชุญู
ูู ุงููุฆุงุช ู
ู ุงูุณูุงูุ
ุจุนุฏ ุณุงุนุงุช ุทูููุฉ ู
ู ุชุตุญูุญ ู
ุตุฏุฑ ุงูุฑุจูุน ุ ูุตู ุฒู
ููู ุชุฌุฑูุจููุง ุฅูู ุงูุญูููุฉ ุงูุจุณูุทุฉ ุฌุฏูุง ูุงูู
ูููู
ุฉ.ุฌุฒุก ู
ู ุงููุธุฑูุฉ
ุญุฏุฏ ุนูู ุงูููุฑ ุฃู ApplicationContext ูู ุงููุงุฌูุฉ ุงูุฑุฆูุณูุฉ ูู ุชุทุจูู Spring ุงูุฐู ูููุฑ ู
ุนููู
ุงุช ุชูููู ุงูุชุทุจูู.ูุจู ุงูู
ุชุงุจุนุฉ ู
ุจุงุดุฑุฉู ุฅูู ุงูุนุฑุถ ุงูุชูุถูุญู ุ ุฏุนูุง ูููู ูุธุฑุฉ ุนูู ุงูุฎุทูุงุช ุงูุชู ููุทูู ุนูููุง ุฅูุดุงุก ApplicationContext :
ูู ูุฐุง ุงูู
ูุดูุฑ ุ ุณูุญูู ุงูุฎุทูุฉ ุงูุฃููู ุ ูุฃููุง ู
ูุชู
ูู ุจูุฑุงุกุฉ ุงูุชููููุงุช ูุฅูุดุงุก BeanDefinition.BeanDefinition ูู ูุงุฌูุฉ ุชุตู ุงูููู ุ ูุฎุตุงุฆุตู ุ ููุณูุทุงุช ุงูู
ููุดุฆ ุ ูุงูู
ุนููู
ุงุช ุงููุตููุฉ ุงูุฃุฎุฑู.ููู
ุง ูุชุนูู ุจุชูููู ุงููุงุตูููุง ููุณูุง ุ ูุญุชูู Spring ุนูู 4 ุทุฑู ุชูููู:- ุชูููู Xml - ClassPathXmlApplicationContext ("context.xml") ุ
- ุชูููู ุฑุงุฆุน - GenericGroovyApplicationContext ("context.groovy") ุ
- ุงูุชูููู ุนู ุทุฑูู ุงูุชุนูููุงุช ุงูุชูุถูุญูุฉ ุงูุชู ุชุดูุฑ ุฅูู ุญุฒู
ุฉ ุงูู
ุณุญ - AnnotationConfigApplicationContext ("package.name") ุ
- JavaConfig - ุชูููู ุนุจุฑ ุงูุชุนูููุงุช ุงูุชูุถูุญูุฉ ุงูุชู ุชุดูุฑ ุฅูู ุงููุฆุฉ (ุฃู ุตููู ุงููุฆุฉ) ุงูู
ู
ูุฒุฉ ุจูConfiguration - AnnotationConfigApplicationContext (JavaConfig.class).
ุชูููู Xml
ูุญู ูุฃุฎุฐ ูุฃุณุงุณ ู
ุดุฑูุน ุจุณูุท:public class SpringContextTest{
private static String classFilter = "film.";
public static void main(String[] args){
printLoadedClasses(classFilter);
ููุง ูุฌุจ ุฃู ุชุดุฑุญ ููููุงู ู
ุง ูู ุงูุฃุณุงููุจ ูู
ุง ูู ุงูู
ุณุชุฎุฏู
ุฉ:- printLoadedClasses (ุณูุณูุฉ ... ู
ุฑุดุญุงุช) - ุชุทุจุน ุงูุทุฑููุฉ ุฅูู ูุญุฏุฉ ุงูุชุญูู
ุงุณู
ุงูู
ูุญู
ู ููุฆุงุช JVM ุงูู
ุญู
ูุฉ ู
ู ุงูุญุฒู
ุฉ ุงูุชู ุชู
ุชู
ุฑูุฑูุง ูู
ุนูู
ุฉ. ุจุงูุฅุถุงูุฉ ุฅูู ุฐูู ุ ููุงู ู
ุนููู
ุงุช ุนู ุนุฏุฏ ุฌู
ูุน ุงููุฆุงุช ุงูุชู ุชู
ุชุญู
ูููุง ุ
- doSomething (Object o) ูู ุทุฑููุฉ ุชููู
ุจุนู
ู ุจุฏุงุฆู ุ ููููุง ูุง ุชุณู
ุญ ุจุงุณุชุจุนุงุฏ ุงููุฆุงุช ุงูู
ุฐููุฑุฉ ุฃุซูุงุก ุงูุชุญุณูู ุฃุซูุงุก ุงูุชุญููู ุงูุจุฑู
ุฌู.
ูุญู ูุชุตู ุจู
ุดุฑูุน ุงูุฑุจูุน (ููู
ุง ููู ุ ูุนู
ู ุงูุฑุจูุน 4 ูู
ูุถูุน ุงุฎุชุจุงุฑ):11 public class SpringContextTest{
12 private static String calssFilter = "film.";
13
14 public static void main(String[] args){
15
16 printLoadedClasses(classFilter);
17
ุงูุณุทุฑ 25 ูู ุชุนุฑูู ูุชููุฆุฉ ApplicationContext ู
ู ุฎูุงู ุชูููู Xml .ู
ูู xml ุงูุชูููู ูู
ุง ููู:<beans xmlns = "http://www.spingframework.org/schema/beans" xmlns:xsi = "http..."
<bean id = "villain" class = "film.Villain" lazy-init= "true">
<property name = "name" value = "Vasily"/>
</bean>
</beans>
ุนูุฏ ุชูููู ุงูููู ุ ูุญุฏุฏ ูุฆุฉ ู
ูุฌูุฏุฉ ุจุงููุนู. ุงูุชุจู ุฅูู ุงูุฎุงุตูุฉ ุงูู
ุญุฏุฏุฉ lazy-init = โtrueโ : ูู ูุฐู ุงูุญุงูุฉ ุ ูู ูุชู
ุฅูุดุงุก ุงูุญุงููุฉ ุฅูุง ุจุนุฏ ุทูุจูุง ู
ู ุงูุณูุงู.ููุธุฑ ุฅูู ููููุฉ ููุงู
Spring ุ ุนูุฏ ุฑูุน ุงูุณูุงู ุ ุจุชูุถูุญ ุงูู
ููู ู
ุน ุงูุทุจูุงุช ุงูู
ุนููุฉ ูู ู
ูู ุงูุชูููู:public class SpringContextTest {
private static String classFilter = "film.";
public static void main(String[] args) {
printLoadedClasses(classFilter);
ุฏุนููุง ููุญุต ุชูุงุตูู ุชูููู Xml:- ูุฑุงุกุฉ ู
ูู ุงูุชูููู ูุงูุช ุงููุฆุฉ XmlBeanDefinitionReader ุ ุงูุชู ุชููุฐ ูุงุฌูุฉ BeanDefinitionReader ุ- ูุชููู XmlBeanDefinitionReader ุนูุฏ ุงูุฅุฏุฎุงู InputStream ููุญู
ู ุงูู
ุณุชูุฏ ู
ู ุฎูุงู DefaultDocumentLoader :Document doc = doLoadDocument(inputSource, resource);
return registerBeanDefinitions(doc, resource);
- ุจุนุฏ ุฐูู ุ ุชุชู
ู
ุนุงูุฌุฉ ูู ุนูุตุฑ ู
ู ุนูุงุตุฑ ูุฐุง ุงูู
ุณุชูุฏ ุ ูุฅุฐุง ูุงู ุตูุฏูููุง ุ ูุชู
ุฅูุดุงุก BeanDefinition ุงุณุชูุงุฏูุง ุฅูู ุงูุจูุงูุงุช ุงูู
ุนุจุฃุฉ (ุงูู
ุนุฑู ุ ุงูุงุณู
ุ ุงููุฆุฉ ุ ุงูุงุณู
ุงูู
ุณุชุนุงุฑ ุ ุทุฑููุฉ ุงูุชููุฆุฉ ุ ุทุฑููุฉ ุงูุชุฏู
ูุฑ ุ ุฅูุฎ):} else if (delegate.nodeNameEquals(ele, "bean")) {
this.processBeanDefinition(ele, delegate);
- ูุชู
ูุถุน ูู BeanDefinition ูู ุฎุฑูุทุฉ ุ ูุงูุชู ูุชู
ุชุฎุฒูููุง ูู ูุฆุฉ DefaultListableBeanFactory:this.beanDefinitionMap.put(beanName, beanDefinition);
this.beanDefinitionNames.add(beanName);
ูู ุงูุฑู
ุฒ ุ ุชุจุฏู ุงูุฎุฑูุทุฉ ูู
ุง ููู:
private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(64);
ุงูุขู ูู ู
ูู ุงูุชูููู ููุณูุ ุฅุถุงูุฉ ุฅุนูุงู ุงููุงุตูููุง ุขุฎุฑ ู
ุน film.BadVillain ุงููุฆุฉ :<beans xmlns = "http://www.spingframework.org/schema/beans" xmlns:xsi = "http..."
<bean id = "goodVillain" class = "film.Villain" lazy-init= "true">
<property name = "name" value = "Good Vasily"/>
</bean>
<bean id = "badVillain" class = "film.BadVillain" lazy-init= "true">
<property name = "name" value = "Bad Vasily"/>
</bean>
ุณูุฑู
ู
ุง ุณูุญุฏุซ ุฅุฐุง ุทุจุนุช ูุงุฆู
ุฉ ุจุฃุณู
ุงุก BeanDefenitionNames ูุงููุฆุงุช ุงูู
ุญู
ูุฉ:ApplicationContext context = new ClassPathXmlApplicationContext(
configLocation: "applicationContext.xml");
System.out.println(Arrays.asList(context.getBeanDefinitionNames()));
printLoadedClasses(calssFilter);
ุนูู ุงูุฑุบู
ู
ู ุญูููุฉ ุฃู ูุฆุฉ ุงููููู
.BadVillain ุงูู
ุญุฏุฏุฉ ูู ู
ูู ุงูุชูููู ุบูุฑ ู
ูุฌูุฏุฉ ุ ุฅูุง ุฃู Spring ูุนู
ู ุจุฏูู ุฃุฎุทุงุก:ApplicationContext context = new ClassPathXmlApplicationContext(
configLocation: "applicationContext.xml");
System.out.println(Arrays.asList(context.getBeanDefinitionNames()));
printLoadedClasses(calssFilter);
ูู ูุงุฆู
ุฉ BeanDefenitionNames ุชุญุชูู ุนูู 2 ุงูุนูุงุตุฑุุจู
ุนูู ุ ุชู
ุฅูุดุงุก 2 BeanDefinition ุงูู
ูููุฉ ูู ู
ูููุง.ุชููููุงุช ุงูุนูุจุฉ ูู ููุณูุง ุจุดูู ุฃุณุงุณู. ูููู ุ ูู ุญูู ุชู
ุชุญู
ูู ุงูุทุจูุฉ ุงูุญุงููุฉ ุ ูู
ุชูุดุฃ ุฃู ู
ุดุงูู. ูู
ูู ุฃู ูุณุชูุชุฌ ู
ููุง ุฃูู ูุงูุช ููุงู ุฃูุถูุง ู
ุญุงููุฉ ูุชุญู
ูู ูุฆุฉ ุบูุฑ ู
ูุฌูุฏุฉ ุ ููู ุงูู
ุญุงููุฉ ุงููุงุดูุฉ ูู
ุชูุณุฑ ุฃู ุดูุก.ุฏุนููุง ูุญุงูู ุงูุญุตูู ุนูู ุงููุงุตูููุง ุจุฃููุณูู
ุจุฃุณู
ุงุฆูู
:ApplicationContext context = new ClassPathXmlApplicationContext(
configLocation: "applicationContext.xml");
System.out.println(Arrays.asList(context.getBeanDefinitionNames()));
System.out.println(context.getBean( name: "goodVillain"));
System.out.println(context.getBean( name: "badVillain"));
ูุญุตู ุนูู ู
ุง ููู:
ุฅุฐุง ุชู
ุงุณุชูุงู
ุญุจุฉ ุตุงูุญุฉ ูู ุงูุญุงูุฉ ุงูุฃููู ุ ููุฏ ูุตู ุงุณุชุซูุงุก ูู ุงูุญุงูุฉ ุงูุซุงููุฉ.ุงูุชุจู ุฅูู ุชุชุจุน ุงูู
ูุฏุณ: ุนู
ู ุงูุชุญู
ูู ุงูู
ุคุฌู ูููุตูู. ูุชู
ุงูุฒุญู ุฅูู ุฌู
ูุน ุจุฑุงู
ุฌ ุชุญู
ูู ุงููุตู ุงูุฏุฑุงุณู ูู ู
ุญุงููุฉ ููุนุซูุฑ ุนูู ุงููุตู ุงูุฏุฑุงุณู ุงูุฐู ูุจุญุซูู ุนูู ู
ู ุจูู ุงูู
ููุงุช ุงูู
ุญู
ูุฉ ุณุงุจููุง. ูุจุนุฏ ุนุฏู
ุงูุนุซูุฑ ุนูู ุงููุฆุฉ ุงูู
ุทููุจุฉ ุ ู
ู ุฎูุงู ุงุณุชุฏุนุงุก ุฃุณููุจ Utils.forName ุ ุชุชู
ู
ุญุงููุฉ ููุนุซูุฑ ุนูู ูุฆุฉ ุบูุฑ ู
ูุฌูุฏุฉ ุจุงูุงุณู
ุ ู
ู
ุง ุฃุฏู ุฅูู ุฎุทุฃ ุทุจูุนู.ุนูุฏ ุฑูุน ุงูุณูุงู ุ ุชู
ุชุญู
ูู ูุฆุฉ ูุงุญุฏุฉ ููุท ุ ุจููู
ุง ูู
ุชุคุฏู ู
ุญุงููุฉ ุชุญู
ูู ู
ูู ุบูุฑ ู
ูุฌูุฏ ุฅูู ุญุฏูุซ ุฎุทุฃ. ูู
ุงุฐุง ุญุตู ูุฐุงุูุฐุง ูุฃููุง ุณุฌููุง ูุณูู ุงูุญุฑู ุงูุฃูู: ุตุญูุญูููู Spring ูุฅูุดุงุก ู
ุซูู ู
ู ุงูุญุจุฉ ุ ุญูุซ ูุชู
ุฅูุดุงุก ุงูุงุณุชุซูุงุก ุงูุฐู ุชู
ุชูููู ู
ุณุจููุง. ุฅุฐุง ูู
ุช ุจุฅุฒุงูุฉ ูุฐู ุงูุฎุงุตูุฉ ู
ู ุงูุชูููู ุฃู ูู
ุช ุจุชุบููุฑ ููู
ุชูุง lazy-init: false ุ ูุณูุชุนุทู ุงูุฎุทุฃ ุงูู
ูุถุญ ุฃุนูุงู ุฃูุถูุง ุ ูููู ูู ูุชู
ุชุฌุงูู ุงูุชุทุจูู. ูู ุญุงูุชูุง ุ ุชู
ุช ุชููุฆุฉ ุงูุณูุงู ุ ูููููุง ูู
ูุชู
ูู ู
ู ุฅูุดุงุก ู
ุซูู ู
ู ุงูุญุจุฉ ุ ูุฃู ูู
ูุชู
ุงูุนุซูุฑ ุนูู ุงููุตู ุงูู
ุญุฏุฏ.ุชูููู ุฑุงุฆุน
ุนูุฏ ุชูููู ุณูุงู ุจุงุณุชุฎุฏุงู
ู
ูู Groovy ุ ุชุญุชุงุฌ ุฅูู ุฅูุดุงุก GenericGroovyApplicationContext ุ ุงูุฐู ูุชููู ุณูุณูุฉ ู
ุน ุชูููู ุงูุณูุงู ูู
ุฏุฎู. ูู ูุฐู ุงูุญุงูุฉ ุ ุชุนู
ู ูุฆุฉ GroovyBeanDefinitionReader ูู ูุฑุงุกุฉ ุงูุณูุงู . ูุนู
ู ูุฐุง ุงูุชูููู ุจุดูู ุฃุณุงุณู ู
ุซู Xml ุ ููุท ู
ุน ู
ููุงุช Groovy. ุจุงูุฅุถุงูุฉ ุฅูู ุฐูู ุ ูุนู
ู GroovyApplicationContext ุจุดูู ุฌูุฏ ู
ุน ู
ูู Xml.ู
ุซุงู ุนูู ู
ูู ุชูููู Groovy ุจุณูุท:beans {
goodOperator(film.Operator){bean - >
bean.lazyInit = 'true' >
name = 'Good Oleg'
}
badOperator(film.BadOperator){bean - >
bean.lazyInit = 'true' >
name = 'Bad Oleg' / >
}
}
ูุญุงูู ุฃู ููุนู ููุณ ุงูุดูุก ู
ุน Xml:
ูุชุนุทู ุงูุฎุทุฃ ุนูู ุงูููุฑ: ูููู
Groovy ุ ู
ุซู Xml ุ ุจุฅูุดุงุก BeanDefenitions ุ ูููู ูู ูุฐู ุงูุญุงูุฉ ูุนุทู ุงูู
ุนุงูุฌ ุงููุงุญู ุฎุทุฃ ุนูู ุงูููุฑ.ุงูุชูููู ุนุจุฑ ุงูุชุนูููุงุช ุงูุชูุถูุญูุฉ ุงูุชู ุชุดูุฑ ุฅูู ุญุฒู
ุฉ ููู
ุณุญ ุฃู JavaConfig
ูุฎุชูู ูุฐุง ุงูุชูููู ุนู ุงูุชูููููู ุงูุณุงุจููู. ูุณุชุฎุฏู
ุงูุชูููู ู
ู ุฎูุงู ุงูุชุนูููุงุช ุงูุชูุถูุญูุฉ ุฎูุงุฑูู: JavaConfig ูุงูุชุนููู ุงูุชูุถูุญู ุนูู ุงููุฆุงุช.ูุชู
ุงุณุชุฎุฏุงู
ููุณ ุงูุณูุงู ููุง: AnnotationConfigApplicationContext ("package" /JavaConfig.class) . ูุนู
ู ุญุณุจ ู
ุง ุชู
ุชู
ุฑูุฑู ุฅูู ุงูู
ูุดุฆ.ูู ุณูุงู AnnotationConfigApplicationContext ููุงู ู
ุฌุงูุงู ุฎุงุตุงู :- ูุงุฑุฆ AnnotatedBeanDefinitionReader ุงูููุงุฆู ุงูุฎุงุต (ูุนู
ู ู
ุน JavaConfig) ุ
- ุงูู
ุงุณุญ ุงูุถูุฆู ุงูููุงุฆู ุงูุฎุงุต ุจู ClassPathBeanDefinitionScanner r (ูู
ุณุญ ุงูุญุฒู
ุฉ).
ุฎุตูุตูุฉ AnnotatedBeanDefinitionReader ูู ุฃูู ูุนู
ู ูู ุนุฏุฉ ู
ุฑุงุญู:- ุชุณุฌูู ุฌู
ูุน ู
ููุงุช ุงูุชูููู ูู
ุฒูุฏ ู
ู ุงูุชุญููู ุ
- ูู
ุจุชุณุฌูู BeanFactoryPostProcesso r ุงูุฎุงุต ุ ููู BeanDefinitionRegistryPostProcessor ุ ูุงูุฐู ุจุงุณุชุฎุฏุงู
ูุฆุฉ ConfigurationClassParser ุ ูููู
ุจุชุญููู JavaConfig ูุฅูุดุงุก BeanDefinition .
ููุฑ ูู ู
ุซุงู ุจุณูุท:@Configuration
public class JavaConfig {
@Bean
@Lazy
public MainCharacter mainCharacter(){
MainCharacter mainCharacter = new MainCharacter();
mainCharacter.name = "Patric";
return mainCharacter;
}
}
public static void main(String[] args) {
ApplicationContext javaConfigContext =
new AnnotationConfigApplicationContext(JavaConfig.class);
for (String str : javaConfigContext.getBeanDefinitionNames()){
System.out.println(str);
}
printLoadedClasses(classFilter);
ูููู
ุจุฅูุดุงุก ู
ูู ุชูููู ุจุฃุจุณุท ุญุงููุฉ ู
ู
ููุฉ. ููุธุฑ ุฅูู ู
ุง ุณูุชู
ุชุญู
ููู:
ุฅุฐุง ุ ูู ุญุงูุฉ Xml ู Groovy ุ ุชู
ุชุญู
ูู ุงูุนุฏูุฏ ู
ู BeanDefinition ูู
ุง ุชู
ุงูุฅุนูุงู ุนูู ุ ูู ูุฐู ุงูุญุงูุฉ ุ ูุชู
ุชุญู
ูู ูู ู
ู BeanDefinition ุงูู
ุนูู ูุงูุฅุถุงูู ูู ุนู
ููุฉ ุฑูุน ุงูุณูุงู. ูู ุญุงูุฉ ุงูุชูููุฐ ู
ู ุฎูุงู JavaConfig ุ ูุชู
ุชุญู
ูู ุฌู
ูุน ุงููุฆุงุช ุนูู ุงูููุฑ ุ ุจู
ุง ูู ุฐูู ูุฆุฉ JavaConfig ููุณูุง ุ ูุฃููุง ููุณูุง ููู.ููุทุฉ ุฃุฎุฑู: ูู ุญุงูุฉ ุชููููุงุช Xml ู Groovy ุ ุชู
ุชุญู
ูู 343 ู
ูููุง ุ ููุง ุญุฏุซ ุชุญู
ูู "ุซููู" ุฃูุซุฑ ู
ู 631 ู
ูููุง ุฅุถุงูููุง. ุฎุทูุงุชุนู
ู ClassPathBeanDefinitionScanner :- ุชุญุฏุฏ ุงูุญุฒู
ุฉ ุงูู
ุญุฏุฏุฉ ูุงุฆู
ุฉ ุงูู
ููุงุช ุงูู
ุฑุงุฏ ู
ุณุญูุง. ุชูุน ุฌู
ูุน ุงูู
ููุงุช ูู ุงูุฏูุงุฆู.
- , InputStream org.springframework.asm.ClassReader.class;
- 3- , org.springframework.core.type.filter.AnnotationTypeFilter. Spring , Component , Component;
- , BeanDefinition.
ูู "ุณุญุฑ" ุงูุนู
ู ู
ุน ุงูุชุนูููุงุช ุงูุชูุถูุญูุฉ ุ ูู
ุง ูู ุงูุญุงู ู
ุน Xml ู Groovy ุ ููู
ู ุจุงูุถุจุท ูู ูุฆุฉ ClassReader.class ู
ู ู
ุฌู
ูุนุฉ springframework.asm . ุฎุตูุตูุฉ ูุฐุง ุงููุงุฑุฆ ูู ุฃูู ูู
ูู ุฃู ูุนู
ู ู
ุน ุงูุจุงูุช ููุฏ. ููุฐุง ูุนูู ุฃู ุงููุงุฑุฆ ูุฃุฎุฐ InputStream ู
ู ุงูุจุงูุช ููุฏ ูููุญุตู ููุจุญุซ ุนู ุงูุชุนูููุงุช ุงูุชูุถูุญูุฉ ููุงู.ุถุน ูู ุงุนุชุจุงุฑู ุงูู
ุงุณุญ ุงูุถูุฆู ุจุงุณุชุฎุฏุงู
ู
ุซุงู ุจุณูุท.ูู
ุจุฅูุดุงุก ุชุนููู ุชูุถูุญู ุฎุงุต ุจู ููุจุญุซ ุนู ุงููุฆุงุช ุงูู
ูุงุจูุฉ:import org.springframework.stereotype.Component
import java.lang.annotation.*;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface MyBeanLoader{
String value() default "";
ููุดุฆ ูุตููู: ุฃุญุฏูู
ุง ู
ุน ุงูุชุนููู ุงูุชูุถูุญู ููู
ููู ุงูููุงุณู ุ ูุงูุซุงูู ู
ุน ุงูุชุนููู ุงูุชูุถูุญู ุงูู
ุฎุตุต:@Component
public class MainCharacter {
public static int num = 1;
@Value("Silence")
public String name;
public MainCharacter() { }
MyBeanLoader("makerFilm")
@Lazy
public class FilmMaker {
public static int staticInt = 1;
@Value("Silence")
public String filmName;
public FilmMaker(){}
ููุชูุฌุฉ ูุฐูู ุ ูุญุตู ุนูู BeanDefinition ุงูุฐู ุชู
ุฅูุดุงุคู ููุฐู ุงููุฆุงุช ูุงููุฆุงุช ุงูุชู ุชู
ุชุญู
ูููุง ุจูุฌุงุญ.ApplicationContext annotationConfigContext =
new AnnotationConfigApplicationContext(...basePackages: "film");
for (String str : annotationConfigContext.getBeanDefinitionNames()){
System.out.println(str);
}
printLoadedClasses(classFilter);

ุงุณุชูุชุงุฌ
ู
ู
ุง ุณุจู ูู
ูู ุงูุฅุฌุงุจุฉ ุนูู ุงูุฃุณุฆูุฉ ุงูู
ุทุฑูุญุฉ ูู
ุง ููู:- Spring ?
, . BeanDefinition, : , BeanDefinitionโ . BeanDefinition, .. - Spring ?
Java: , , , .
PS ุขู
ู ุฃู ุฃููู ูุฏ ุชู
ููุช ูู ูุฐุง ุงูู
ูุดูุฑ ู
ู "ูุชุญ ุญุฌุงุจ ุงูุณุฑูุฉ" ูุฃู ุฃุธูุฑ ุจุงูุชูุตูู ููู ูุญุฏุซ ุชุดููู ุณูุงู ุงูุฑุจูุน ูู ุงูู
ุฑุญูุฉ ุงูุฃููู. ุงุชุถุญ ุฃูู ููุณ ูู ุดูุก "ู
ุฎูู". ููู ูุฐุง ููุณ ุณูู ุฌุฒุก ุตุบูุฑ ู
ู ุฅุทุงุฑ ุนู
ู ูุจูุฑ ุ ู
ู
ุง ูุนูู ุฃูู ูุง ูุฒุงู ููุงู ุงููุซูุฑ ู
ู ุงูู
ุณุชูุจู ุงูุฌุฏูุฏ ูุงูู
ุซูุฑ ููุงูุชู
ุงู
.