Spring相關技術點

2021-10-07 10:45:21 字數 2286 閱讀 8244

inverse of control,控制反轉

簡單的說就是引入工廠(第三者),將原來在程式中手動建立的物件,交給工廠來建立管理。

1.1 理解工廠的作用

// 實現乙個簡單的通過工廠獲取物件的方式

public

class

factory

}

缺點:工廠方法仍然需要返回具體型別的例項物件,存在**耦合,乙個工廠只能獲取單一型別的物件,解決方案:使用反射技術傳入具體型別的類字串生產物件的例項:

public

class

factory

catch

(exception e)

//返回具體型別的物件型別例項

return bean;}}

public

static

void

main

(string[

] args)

發現問題:類字串是固定的,怎麼動態的傳入不同的類字串呢?

解決方案:使用xml配置檔案動態傳入類字串

ioc底層實現:工廠(設計模式)+反射(機制) + 配置檔案(xml)。

工廠:spring容器

反射:每乙個bean要配置class(物件型別的類字串)

<?xml version="1.0" encoding="utf-8"?>

xmlns

=""xmlns:xsi

=""xsi:schemalocation="

/spring-beans.xsd"

>

"userdao"

class

="cn.itcast.spring.a_quickstart.userdaoimpl"

/>

beans

>

public

static

void

main

(string[

] args)

di:dependency injection 依賴注入,在spring框架負責建立bean物件時,動態的將依賴物件注入到bean元件(簡單的說,可以將另外乙個bean物件動態的注入到另外乙個bean中。)

di的做法是:由spring容器建立了service、dao物件,並且在配置中將dao傳入servcie,那麼service物件就包含了dao物件的引用。

步驟一:將service物件和dao物件交給spring容器管理

<?xml version="1.0" encoding="utf-8"?>

xmlns

=""xmlns:xsi

=""xsi:schemalocation="

/spring-beans.xsd"

>

"userdao"

class

="cn.itcast.spring.a_quickstart.userdaoimpl"

/>

name

="userdao"

ref="userdao"

/>

bean

>

beans

>

步驟二:在sevice中定義屬性提供setter方法:

public

class

userserviceimpl

implements

iuserservice

public

void

login()

}

步驟三:測試執行,此時獲取物件必須從spring工廠獲取(在spring容器配置中才有依賴注入,自己建立的物件沒有注入依賴關係)

public

class

springtest

}

後處理bean也稱之為bean的後處理器,作用是:在bean初始化的前後,對bean物件進行增強。它既可以增強乙個指定的bean,也可以增強所有的bean,底層很多功能(如aop等)的實現都是基於它的,spring可以在容器中直接識別呼叫。

spring相關知識點3

spring day03 二.事務特性 acid 事務隔離性併發 髒讀 幻讀 不可重複讀 事務隔離級別 1 2 4 8 1 讀未提交 2 讀已提交 4 可重複讀 8 序列化 spring封裝了事務管理 開啟事務 提交事務 回滾事務 在不同平台 jdbc hibernate mybatis 操作事務的...

前端基礎技術點(CSS相關)

二 盒模型 三 格式化上下文 formatting context 行內格式化上下文 inline formatting contexts 層疊順序是瀏覽器渲染顯示的一種規則。層疊上下文是對html元素的乙個三維構想。html元素基於其元素屬性按照優先順序佔據這個空間。哪些條件會影響當前節點在自己在...

spring事務的相關知識點

4 事務管理失效的情況 所謂spring事務的傳播屬性,就是定義多個事務同時存在的時候,spring應該如何處理這些事務的行為。簡單來講就是 乙個開啟事務的方法執行在另乙個開啟了事務的方法中是,當前方法是開啟乙個新的事物還是使用同乙個事務 這些屬性在transactiondefinition中定義,...