作者:Stephen
?/**
???? * 1)src:源碼包開始的路徑桩了,稱為類路徑的開始
???? *???所有源碼包里面的東西都會被合并放在類路徑里面
???? *???Java:/bin
???? *???web項目的類路徑:/web-inf/classes
???? * 2)導(dǎo)包commons-logging
???? * 3)先導(dǎo)包再創(chuàng)建配置文件
???? * 4)spring的容器接管了標(biāo)志了S標(biāo)記的類
???? *細(xì)節(jié):
???? * 1)ApplicationContext(IOC容器的接口)
???? * 2)給容器中注冊一個組件附帽,我們也從容器中按照id拿到了這個組件的對象?
???? * ???????答: 組件的創(chuàng)建工作是容器完成的井誉;
???? * ???? Person對象是什么時候創(chuàng)建好的呢蕉扮?
???? * ???????答:????容器中對象的創(chuàng)建在容器創(chuàng)建完成的時候就已經(jīng)創(chuàng)建了(有幾個對象創(chuàng)建幾次)
???? * 3)同一個對象在ioc容器中是單實例的;
???? * 4)容器中如果沒有這個對象獲取組件的話報異常NoSuchBeanDefinitionException
???? * ???? 組件未定義異常
???? * 5)property賦值調(diào)用setter方法進(jìn)行賦值
???? * 6)javaBean的屬性名由什么決定的颗圣?getter/setter方法的set/get后面的名字
???? * ???? getter/setter全部自動生成的
*? 7)* 如果ioc容器中這個類型的bean有多個用類型找就會報NoUniqueBeanDefinitionException異常
? ?? * 這個時候就只能通過bean的id來找
? ?? * 但是可以用ioc.getBean(id,class)方法就可以找到
???? */
????/**
???? * 從容其中拿到這個組件
???? */
????@Test
????void test() {
????????//ApplicationContext:代表ioc容器
????????//ClassPathXmlApplicationContext:當(dāng)前應(yīng)用的xml配置文件在ClassPath下
????????//根據(jù)spring的配置文件得到ioc容器對象
????????ApplicationContext ioc = new ClassPathXmlApplicationContext("IOC.xml");
????????//容器幫我們創(chuàng)建對象
????????Person bean = (Person)ioc.getBean("person01");
????????System.out.println(bean);
????}
}
靜態(tài)工廠創(chuàng)建對象
實例工廠創(chuàng)建
spring管理連接池
autowired后的(required=false):找不到后返回null