spring學習筆記05 IOC常用註解(二)

2021-10-02 22:35:03 字數 3433 閱讀 9817

2.3 關於 spring 註解和 xml 的選擇問題

註解的優勢:

配置簡單,維護方便(我們找到類,就相當於找到了對應的配置)。

xml 的優勢:

修改時,不用改原始碼。不涉及重新編譯和部署。

spring 管理 bean 方式的比較:

2.4spring 管理物件細節

基於註解的 spring ioc 配置中,bean 物件的特點和基於 xml 配置是一模一樣的。

2.5spring 的純註解配置
寫到此處,基於註解的 ioc 配置已經完成,但是大家都發現了乙個問題:我們依然離不開 spring 的 xml 配

置檔案,那麼能不能不寫這個 bean.xml,所有配置都用註解來實現呢?

當然,同學們也需要注意一下,我們選擇哪種配置的原則是簡化開發和配置方便,而非追求某種技術。

2.5.1 待改造的問題
我們發現,之所以我們現在離不開 xml 配置檔案,是因為我們有一句很關鍵的配置:

如果他要也能用註解配置,那麼我們就離脫離 xml 檔案又進了一步。 另外,資料來源和 jdbctemplate 的配置也需要靠註解來實現。

"dbassit"

class

="com.itheima.dbassit.dbassit"

>

name

="datasource"

ref="datasource"

>

property

>

bean

>

"datasource"

class

="com.mchange.v2.c3p0.combopooleddatasource"

>

name

="driverclass"

value

="com.mysql.jdbc.driver"

>

property

>

name

="jdbcurl"

value

="jdbc:mysql:///spring_day02"

>

property

>

name

="user"

value

="root"

>

property

>

name

="password"

value

="1234"

>

property

>

bean

>

2.5.2 新註解說明

2.5.2.1 @configuration

示例**:

@configuration

public

class

springconfiguration

2.5.2.2 @componentscan

作用:用於指定 spring 在初始化容器時要掃瞄的包。作用和在 spring 的 xml 配置檔案中的:是一樣的。

屬性:basepackages:用於指定要掃瞄的包。和該註解中的 value 屬性作用一樣。

示例**:

@configuration

@componentscan

("com.itheima"

)public

class

springconfiguration

2.5.2.3 @bean

作用:該註解只能寫在方法上,表明使用此方法建立乙個物件,並且放入 spring 容器。

屬性:name:給當前@bean 註解方法建立的物件指定乙個名稱(即 bean 的 id)。

2.5.2.4 @propertysource

作用:用於載入.properties 檔案中的配置。例如我們配置資料來源時,可以把連線資料庫的資訊寫到

properties 配置檔案中,就可以使用此註解指定 properties 配置檔案的位置。

屬性:value:用於指定 properties 檔案位置。如果是在類路徑下,需要寫上 classpath

public

class

jdbcconfig")

private string driver;

@value

("$"

)private string url;

@value

("$"

)private string username;

@value

("$"

)private string password;

/** * 建立乙個資料來源,並存入 spring 容器中

* @return

*/@bean

(name=

"datasource"

)public datasource createdatasource()

catch

(exception e)

}}

jdbc.properties 檔案:

jdbc.driver=com.mysql.jdbc.driver

jdbc.url=jdbc:mysql://localhost:3306/day44_ee247_spring

jdbc.username=root

jdbc.password=1234

2.5.2.5 @import

作用:用於匯入其他配置類,在引入其他配置類時,可以不用再寫@configuration 註解。當然,寫上也沒問題。

屬性:value:用於指定其他配置類的位元組碼。

示例**:

@configuration

@componentscan

(basepackages =

"com.itheima.spring"

)@import()

public

class

springconfiguration

@configuration

@propertysource

("classpath:jdbc.properties"

)public

class

jdbcconfig

2.5.2.6 通過註解獲取容器:

new(springconfiguration.

class);

Spring學習筆記 IoC

getbean 方法 引數為class時要保證配置檔案中bean唯一 構造器注入 通過constructor arg節點注入 工廠方法注入 很少使用 繼承 通過在bean中新增屬性parent指定繼承的父bean,也可以忽略父 bean 的 class 屬性,此時 abstract屬性 必須設為 t...

Spring之IOC 學習筆記

ioc ioc理論的背景 依賴注入 di ioc的好處 ioc的通俗理解 ioc ioc inversionof control,控制反轉 是 spring 的核心,貫穿始終。所謂 ioc,對於 spring 框架來說,就是由 spring 來負責控制物件的生命週期和物件的關係 傳統開發模式 物件之...

spring學習筆記 IOC 控制反轉

spring為編寫企業應用程式提供了輕量的解決方案,同時仍然支援使用宣告式事務 用rmi或web service遠端呼叫 以及使用多種方式來將資料持久化到資料庫。ioc 控制反轉。也有人這樣叫 di 依賴注入。aop 面前切面程式設計。所謂控制反 以前我們要呼叫某個類的方法。首先是new這個類。然後...