1枉昏、可以通過實(shí)現(xiàn)InitializingBean接口,與DisposableBean接口盏档,實(shí)現(xiàn)其中的方法凶掰,完成在初始化或者銷毀時(shí)的回調(diào)函數(shù)。但是官方不推薦這樣做蜈亩,因?yàn)檫@樣會(huì)與Spring框架耦合懦窘,官方推薦采用@PostConstruct、@PreDestroy或者xml配置稚配,在bean標(biāo)簽的的屬性init-method="methodName"畅涂、destroy-method="methodName",其中methodName就是回調(diào)函數(shù)的方法名稱道川。
2午衰、對(duì)于這類回調(diào)函數(shù),官方推薦使用標(biāo)準(zhǔn)化的方法命名規(guī)范冒萄,例如init()臊岸、initialize()、dispose()尊流,以便于共同開發(fā)帅戒,保持一致性。
3崖技、對(duì)于有許多這樣的回調(diào)函數(shù)逻住,沒有必要每次都聲明,只需要在其中的一個(gè)bean中添加屬性default-init-method="init"迎献,后續(xù)的所有的bean都將init設(shè)置為初始化回調(diào)函數(shù)瞎访。也可以在<beans>標(biāo)簽設(shè)置這樣的頂層屬性。
4吁恍、當(dāng)項(xiàng)目中出現(xiàn)全局beans中配置的方法名與bean中規(guī)定的方法名稱不相同的時(shí)候扒秸,bean中屬性定義的方法名稱會(huì)覆蓋掉beans中的方法名稱播演。
5、關(guān)于初始化與銷毀的回調(diào)函數(shù)一共三種方式伴奥,注解配置宾巍,實(shí)現(xiàn)接口,xml配置渔伯。當(dāng)程序中出現(xiàn)一個(gè)bean的多個(gè)配置同時(shí)存在時(shí)顶霞。調(diào)用優(yōu)先級(jí)順序如下:
---- 先調(diào)用注解方式,然后是接口方式锣吼,最后是xml方式选浑。
要注意,配置多個(gè)lifecycle method玄叠,bean只會(huì)執(zhí)行一次古徒,即優(yōu)先級(jí)最高的那一個(gè)。
6读恃、父bean是不能被初始化的隧膘,如果想要聲明為父bean,那么bean標(biāo)簽中abstract屬性一定要為true寺惫,否則的話疹吃,Spring會(huì)嘗試初始化這個(gè)bean。
7西雀、BeanPostProcessors操作一個(gè)bean實(shí)例萨驶,通過實(shí)現(xiàn)BeanPostProcessor接口完成對(duì)IoC的擴(kuò)展。
8艇肴、BeanFactoryPostProcessors支持元數(shù)據(jù)腔呜,與BeanPostProcessors一樣都是只作用與當(dāng)前容器。
9再悼、配置數(shù)據(jù)源時(shí)核畴,可以在xml中使用${jdbc.*},然后使用<context:property-placeholder location="classpath:com/foo/jdbc.properties"/>
使用properties文件冲九。location后的數(shù)據(jù)之間用逗號(hào)隔開谤草。
10、@Autowired完成自動(dòng)裝配娘侍,可以作用于構(gòu)造方法咖刃,屬性泳炉,與setter方法憾筏。