Spring自動元件掃瞄

2021-09-02 17:28:44 字數 1905 閱讀 9303

通常情況下,在xml bean配置檔案宣告所有的bean類或元件,這樣spring容器可以檢測並註冊bean類或元件。 其實,spring是能夠自動掃瞄,檢測和預定義的專案包並例項化bean,不再有繁瑣的bean類宣告在xml檔案中。

在bean配置檔案中配置「context:component」表親啊,這意味著,在 spring 中啟用自動掃瞄功能。base-package 是指明儲存元件,spring將掃瞄該資料夾,並找出bean(註解為@component)並註冊到 spring 容器:

xmlns

=""xmlns:xsi

=""xmlns:context

=""xsi:schemalocation

="/spring-beans-2.5.xsd

/spring-context-2.5.xsd"

>

<

context:component-scan

base-package

="com.myprj.customer"

/>

beans

>

使用@component注釋來表示該類是乙個自動掃瞄元件。

你可以這樣建立自定義名稱:

@service

("aaa"

)public

class

customerservice..

.

現在,可以用』aaa』這個名稱進行檢索。

customerservice cust =

(customerservice)context.

getbean

("aaa"

);

在spring2.5中,有4種型別的元件自動掃瞄注釋型別

使用spring 「過濾」 掃瞄並註冊匹配定義「regex」,即使該類元件的名稱未標註 @component 也能被註冊到spring容器中:

<

context:component-scan

base-package

="com.myprj"

>

<

context:include-filter

type

="regex"

expression

="com.myprj.customer.dao.*dao.*"

/>

<

context:include-filter

type

="regex"

expression

="com.myprj.customer.services.*service.*"

/>

context:component-scan

>

在這個xml過濾中,所有檔案的名稱中包含 dao 或 service(dao., services.) 單詞將被檢測並在 spring 容器中註冊。

另外,您還可以排除指定元件,以避免 spring 檢測和 spring 容器註冊。

如不包括在這些檔案中標註有 @service :

<

context:component-scan

base-package

="com.myprj.customer"

>

<

context:exclude-filter

type

="annotation"

expression

="org.springframework.stereotype.service"

/>

context:component-scan

>

Spring自動掃瞄元件

通常情況下,宣告所有的bean類或元件的xml bean配置檔案,這樣spring容器可以檢測並註冊bean類或元件。其實,spring是能夠自動掃瞄,檢測和預定義的專案包並例項化bean,不再有繁瑣的bean類宣告在xml檔案中。下面是乙個簡單的spring專案,包括客戶服務和dao層。讓我們來 ...

Spring 自動掃瞄元件

前面 spring 文章都是使用 xml bean 配置檔案實現 spring 容器檢測並註冊bean類或元件。其實,spring是能夠自動掃瞄,檢測和預定義的專案包並例項化bean,不再有繁瑣的bean類宣告在xml檔案中。現在,啟用spring元件掃瞄功能。使用 component注釋來表示這是...

spring 元件掃瞄

有的時候我們的xml中有過多的配置,很繁瑣,為了簡化配置我們使用context中的元件掃瞄的方式,將一部分類直接交付給spring管理。xml中的配置如下。xmlns xmlns xsi xmlns context xsi schemalocation spring beans.xsd spring...