在classpath中掃瞄bean元件
元件掃瞄(component scanning):spring能夠從classpath下自動掃瞄,偵測和例項化具有特定註解的bean元件。
特定元件包括:
@component:基本註解,標識了乙個受spring管理的bean元件
@respository:標識持久層bean元件
@service:標識服務層(業務層)bean元件
@controller:標識表現層(控制層)bean元件
對於掃瞄到的元件,spring有預設的命名策略:使用非限定類名,第乙個字母小寫。也可以在註解中通過value屬性值標識元件的名稱。
元素還會自動註冊autowiredannotationbeanpostprocessor例項,該例項可以自動裝配具有@autowired和@resource、@inject註解的屬性。
預設情況下,所有使用@autowired註解的屬性都需要被設定。當spring找不到匹配的bean裝配屬性時,會丟擲異常,若某一屬性允許不被設定,可以設定@autowired註解的required屬性為false。
@resource註解要求提供乙個bean名稱的屬性,若該屬性為空,則自動採用標註處的變數或方法名作為bean的名稱。
@inject和@autowired註解一樣也是按型別匹配注入的bean,但沒有required屬性。建議使用@autowired註解,
下面**給出乙個如何使用@component的例子,建立乙個person類,使用@component標識這是乙個受spring管理的bean元件,並使用value屬性標定該bean的id值。
package com.spring.c1;
import org.springframework.stereotype.component;
@component(value="person1")
public class person
}
在xml檔案中,使用context:component-scan標籤,並指定掃瞄的包為。至此就完成了簡單的配置。
下面**給出乙個如何使用@respository,@service,@controller三個註解的例子。我們建立三個類,分別為action類(代表控制層),myservice類(業務層)和dao類(持久層)。
action類,使用@controller標識為控制層,並使用@autowired註解進行自動裝配
package com.spring.c1;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.controller;
@controller
public class action
}
myservice類,使用@service標識為業務層。並使用@autowired註解進行自動裝配
package com.spring.c1;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.service;
@service
public class myservice
}
dao類,用@repository標識為持久層。
package com.spring.c1;
import org.springframework.stereotype.repository;
@repository
public class dao
}
基於註解的方式配置Bean
1.元件掃瞄 component scanning spring能夠從classpath下自動掃瞄,偵測和例項化具有特定註解的元件。2.特定的元件包括 3.對於掃瞄到的元件,spring有預設的命名策略,使用非限定類名,第乙個字母小寫,也可以在註解中通過value屬性值標識元件的名稱。例子 user...
Spring 基於註解的方式配置bean
1.常用的元件註解 component 用來標識乙個普通元件 repository 用來標識乙個持久化層的元件 service 用來標識乙個業務邏輯層的元件 controller 用來標識乙個表現層的元件 如果想要將某些類交給ioc容器管理,除了在類上新增以上註解之外,還需要在spring的配置 檔...
spring基於註解的方式配置Bean
要把乙個bean加上註解然後放在ioc容器裡面,需要在classpath中先進行元件掃瞄 component 基本註解,標識了乙個手spring管理的元件 respository 標識持久層元件 service 標識服務層 業務層 元件 controller 標識表現層元件 base package...