1.簡(jiǎn)介:
JavaBean用來充當(dāng)Java Web應(yīng)用的模型組件璧疗。
JSP和Servlet可以調(diào)用JavaBean來完成功能強(qiáng)大的業(yè)務(wù)邏輯操作。
J2EE中最流行的框架柿赊。
核心:IOC,AOP
Spring是一個(gè)輕量級(jí)控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架滓侍,它主要是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而誕生喝峦。
目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性
功能:使用基本的JavaBean代替EJB
范圍:任何Java應(yīng)用
存在原因:
- 定位的領(lǐng)域是許多其他流行的framework沒有的
- Spring是全面和模塊化的
- 它的設(shè)計(jì)從底部幫助你編寫易于測(cè)試的代碼
- spring是潛在的一站式解決方案
Spring的優(yōu)點(diǎn):
- 低侵入式的設(shè)計(jì),代碼污染極低
- Write Once, Run Anywhere
- DI有效的降低了耦合度
- AOP提供了通用任務(wù)的集中管理
- ORM和DAO簡(jiǎn)化了對(duì)數(shù)據(jù)庫(kù)的訪問
- 高度的開放性剑梳,并不強(qiáng)制(可選擇一部分)
Spring的有點(diǎn)給開發(fā)者帶來了好處:
- 可以有效組織中間層對(duì)象
- 使用同一的配置文件
- 促進(jìn)良好的編程習(xí)慣唆貌,減少編程代價(jià)
- 易于單元測(cè)試
- 使EJB成為一種備選
- 為數(shù)據(jù)存取提供了一種可行方案
Spring特點(diǎn):
- 方便解耦,簡(jiǎn)化開發(fā)
- AOP編程的支持
- 聲明式失誤的支持
- 方便程序的測(cè)試
- 方便集成各種優(yōu)秀框架
- 降低了JavaEE API的使用難度
- Spring的源碼是經(jīng)典的學(xué)習(xí)范例
Spring的核心模塊:
- 核心容器(Spring Core)
- 應(yīng)用上下文(Spring Context)
- AOP模塊(Spring AOP)
- JDBC和DAO模塊(Spring DAO)
5.對(duì)象實(shí)體映射(Spring ORM) - Web模塊(Spring Web)
- MVC模塊(Spring Web MVC)
2.Spring 之 IoC
目標(biāo):
1)淺談IoC
2)IoC理論的背景
3)依賴注入(DI)
4)IoC的好處
5)IoC的通俗理解
IoC簡(jiǎn)介:
IoC(Inversion of Control, 控制反轉(zhuǎn))是spring的核心垢乙,貫穿始終锨咙。所謂IoC,對(duì)于Spring框架來說追逮,就是由spring來負(fù)責(zé)控制對(duì)象的生命周期和對(duì)象間關(guān)系蓖租。
傳統(tǒng)開發(fā)模式:對(duì)象之間相互依賴
IoC開發(fā)模式:IoC容器安排對(duì)象之間的依賴
3.Bean創(chuàng)建的細(xì)節(jié)
<bean id="user" class="com.ypd.a.entity.User" scope="singleton">
</bean>
scope
默認(rèn)就是singlone,單例羊壹。
可以不寫scope=“singlon”
scope="singlon" 默認(rèn)值蓖宦。單例。 【service/dao/工具類】 在啟動(dòng)(容器初始化之前)油猫,就創(chuàng)建稠茂。
scope="prototype" 多例。 【Action對(duì)象】 在用到對(duì)象的時(shí)候再創(chuàng)建對(duì)象情妖。
lazy-init="true" 懶加載睬关。 默認(rèn)是false.不延遲創(chuàng)建,即在啟動(dòng)時(shí)候就創(chuàng)建毡证。延遲初始化电爹,在用到的對(duì)象都配置在這里。只對(duì)singleton單例有效料睛。
創(chuàng)建對(duì)象后丐箩,初始化/銷毀
init_method="init_xxx" 【對(duì)應(yīng)對(duì)象的init_xxx方法】在對(duì)象創(chuàng)建之后執(zhí)行摇邦。
destory_method="destory_xxx" 【對(duì)應(yīng)對(duì)象的destory_xxx方法】