Spring入門(二)

Spring表達式語言(簡稱SpEL):是一個支持運行時查詢和操作圖的強大的表達式語言

語法類似EL:SpEL使用${...}作為界定符,所有在大括號中的字符都將被認為是SpEL

通過SpEL可以實現(xiàn):

通過bean的id對bean進行引用

調(diào)用方法以及引用方法中的屬性

計算表達式的值

正則表達式的匹配

SpringIOC容器對Bean的生命周期進行管理的過程:

通過構(gòu)造器或工廠方法創(chuàng)建Bean 實例

為Bean的屬性設(shè)置值和對其他Bean的引用

調(diào)用Bean的初始化方法

Bean可以使用了

當(dāng)容器關(guān)閉時,調(diào)用Bean的銷毀方法

在Bean的聲明里設(shè)置init-method和destroy-method屬性,為Bean指定初始化和銷毀方法

Bean后置處理器允許在調(diào)用初始化方法前后對Bean進行額外的處理

Bean后置處理器對IOC容器里所有的Bean實例逐一處理。而非單一實例。

實現(xiàn)方法:

創(chuàng)建一個實現(xiàn)某個java接口的類,實現(xiàn)其中的兩個方法

在Spring IOC中配置Bean


通過工廠方式配置bean

靜態(tài)工廠方法:直接調(diào)用某一個類的靜態(tài)方法就可以返回bean的實例

class屬性:指向靜態(tài)工廠方法的全類名

factory-method:指向靜態(tài)工廠方法的名字

?constructor-arg:如果工廠方法需要傳入?yún)?shù),則使用

實例工廠方法:實例工廠的方法,即先需要創(chuàng)建工廠本身,再調(diào)用工廠的實例方法

factory-bean屬性:指向?qū)嵗S方法的bean

factory-method:指向靜態(tài)工廠方法的名字

constructor-arg:如果工廠方法需要傳入?yún)?shù),則使用

通過FactoryBean配置Bean

自定義的FactoryBean需要實現(xiàn)FactoryBean接口

在配置文件中,通過FactoryBean來配置Bean的

class:指向FactoryBean的全類名

property:配置FactoryBean的屬性

但實際返回的卻是FactoryBean的getObject()方法返回的實例



通過注解配置bean

Spring能夠從classpath下自動掃描,偵測和實例化具有特定注解的組件

特定組件包括:

@Component:基本注解,標(biāo)識了一個受Spring管理的組件

@Responsitary:標(biāo)識持久層組件

@Service:標(biāo)識服務(wù)層(業(yè)務(wù)層)組件

@Controller:標(biāo)識表示層組件

Spring有默認的命名策略

也可以在注解中通過value屬性標(biāo)識組件的名稱

context:exclude-filter 子節(jié)點排除哪些指定表達式的組件

context:include-fiter? 子節(jié)點指定包含哪些表達式的組件,該子節(jié)點需要use-default-fiters配合使用

指定Spring容器掃描的包:

<context:component-scan base-package="包名">Spring會掃描這個基類包里及其子包里的所有類

<context:component-scan>元素還會自動注冊AutowiredAnnotationBeanPostProcessor實例,該實例可以自動裝配具有@Autowired和@Resourse、@Inject注解的屬性

















最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容