可以把spring看做乙個大型的工廠,而spring容器中的bean就是該工廠的產品。要想使用這個工廠生產和管理bean,就需要在配置檔案中告訴它需要哪些bean,以及需要使用何種方式將這些bean裝配到一起。
xml配置檔案的根元素是beans,beans中包含了多個bean子元素,每乙個bean子元素定義了乙個bean,並描述了該bean如何被裝配到spring容器中。
bean元素中的屬性:
在配置檔案中,通常乙個普通的bean只需要定義id和class兩個屬性即可。
在物件導向的程式中,要想使用某個物件,就需要先例項化這個物件。在spring中,例項化bean有三種方式,分別為構造器例項化、靜態工廠方式例項化和例項工廠方式例項化。
構造器例項化是指spring容器通過bean對應的類中預設的建構函式來例項化bean。就是ioc那個例子。
bean的裝配方式即bean的依賴注入的方式。
在配置檔案中更改
<?xml version="1.0" encoding="utf-8"?>
xmlns=""
xmlns:xsi=""
xmlns:context=""
xsi:schemalocation="
/spring-beans.xsd
/spring-context.xsd">
base-package="com.itcast.annotation">
context:component-scan>
beans>
和之前的例子相比schema約束增加了第4行和7,8行。這個約束還是從之前的那個xsd-config.html中找。
然後使用context命名空間的component-scan元素進行註解的掃瞄,其base-package屬性用來通知spring所需要掃瞄的目錄。
定義乙個dao層的介面
public
inte***ce
bookdao
定義乙個dao層的實現類
@repository("bookdao")
public
class
bookdaoimpl
implements
bookdao
}
定義乙個service層的介面
public
inte***ce
bookservice
定義乙個service層的實現類
@service("bookservice")
public
class
bookserviceimpl
implements
bookservice
@override
public
void
addbook()
}
測試類
public
class
testioc
}
@repository註解將bookdaoimpl類標識為spring中的bean,其寫法相當於配置檔案中的
class="cn.itcast.annotation.bookdaoimpl"/>
@resource註解標註在屬性bookdao上(也可標註在bookdao的set方法上),這相當於配置檔案中
name="bookdao"
ref="bookdao"/>
Spring中Bean的配置
以下面的xml檔案舉例 第乙個bean的名稱為role,第二個bean的名稱為medicine,第三個bean的名稱為spring.chapter.mary.poison,第四個bean的名稱為spring.chapter.mary.poison 1 id和name的區別如下 id屬性具有唯一性,每...
Spring中Bean的配置
1 bean的配置一般都在xml檔案中進行配置 3 spring的bean管理的實現是依靠大量的反射來實現的。4 bean定義配置 4.1bean標籤 id屬性 用於指定bean的名稱,在bean被依賴時使用,在獲取bean時使用等 name屬性 用於指定bean的別名 singleton屬性 用於...
Spring中Bean的scope配置
scope配置只是相對於同乙個上下文的,多次通過new出來的上下文是不同的上下文。scope取值 值說明singleton 在同乙個上下文中保證只有乙個bean例項,這是spring的預設配置 prototype 在同乙個上下文中,每次使用getbean方法都返回不同的例項 request 在同乙個...