2.3 關於 spring 註解和 xml 的選擇問題
註解的優勢:
配置簡單,維護方便(我們找到類,就相當於找到了對應的配置)。
xml 的優勢:
修改時,不用改原始碼。不涉及重新編譯和部署。
spring 管理 bean 方式的比較:
2.4spring 管理物件細節
基於註解的 spring ioc 配置中,bean 物件的特點和基於 xml 配置是一模一樣的。2.5spring 的純註解配置
寫到此處,基於註解的 ioc 配置已經完成,但是大家都發現了乙個問題:我們依然離不開 spring 的 xml 配2.5.1 待改造的問題置檔案,那麼能不能不寫這個 bean.xml,所有配置都用註解來實現呢?
當然,同學們也需要注意一下,我們選擇哪種配置的原則是簡化開發和配置方便,而非追求某種技術。
我們發現,之所以我們現在離不開 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這個類。然後...