通常情況下,宣告所有的bean類或元件的xml bean配置檔案,這樣spring容器可以檢測並註冊bean類或元件。 其實,spring是能夠自動掃瞄,檢測和預定義的專案包並例項化bean,不再有繁瑣的bean類宣告在xml檔案中。
下面是乙個簡單的spring專案,包括客戶服務和dao層。讓我們來**手動申明元件和自動掃瞄元件之間的不同。
1、手動宣告元件
看到在 spring 的乙個正常方式來宣告乙個 bean。
dao 層:
package com.ray.customer.dao;
public class customerdao
}
service 層.
package com.ray.customer.service;
import com.ray.customer.dao.customerdao;
public class customerservice
@override
public string tostring()
}
bean配置檔案
<?xml version="1.0" encoding="utf-8"?>
執行程式
public class test
}
輸出結果
customerservice [customerdao=hello , this is customerdao]
現在,啟用spring元件掃瞄功能。
使用@component注釋來表示這是類是乙個自動掃瞄元件。
@component
public class customerdao
}
dao層,新增@component,表明這也是乙個自動掃瞄元件。
@component
public class customerservice
}
將這個「context:component」在bean配置檔案,這意味著,在 spring 中啟用自動掃瞄功能。base-package 是指明儲存元件,spring將掃瞄該資料夾,並找出bean(註解為@component)並註冊到 spring 容器。
<?xml version="1.0" encoding="utf-8"?>
輸出結果
customerservice [customerdao=hello , this is customerdao]
這是 spring 中的自動掃瞄元件如何工作。
自定義自動掃瞄元件名稱
預設情況下,spring 將小寫部件的第一字元- 從'customerservice'到'customerservice'。可以檢索該元件名稱為「customerservice」。
customerservice cust = (customerservice) context.getbean("customerservice");
要建立元件的自定義名稱,你可以這樣自定義名稱:
@component("aaa")
public class customerservice
}
service 層@service
public class customerservice
}
Spring 自動掃瞄元件
前面 spring 文章都是使用 xml bean 配置檔案實現 spring 容器檢測並註冊bean類或元件。其實,spring是能夠自動掃瞄,檢測和預定義的專案包並例項化bean,不再有繁瑣的bean類宣告在xml檔案中。現在,啟用spring元件掃瞄功能。使用 component注釋來表示這是...
Spring自動元件掃瞄
通常情況下,在xml bean配置檔案宣告所有的bean類或元件,這樣spring容器可以檢測並註冊bean類或元件。其實,spring是能夠自動掃瞄,檢測和預定義的專案包並例項化bean,不再有繁瑣的bean類宣告在xml檔案中。在bean配置檔案中配置 context component 表親啊...
spring 元件掃瞄
有的時候我們的xml中有過多的配置,很繁瑣,為了簡化配置我們使用context中的元件掃瞄的方式,將一部分類直接交付給spring管理。xml中的配置如下。xmlns xmlns xsi xmlns context xsi schemalocation spring beans.xsd spring...