1. 程式人生 > >Bean配置(註解)

Bean配置(註解)

rda 版本 註解 ase back source xmlns odin pos

使用註解定義bean

@Component

功能:指定對應的類為Spring控制的bean

格式:定義在類的上方,可以為類指定bean名稱 定義UserDAOImpl類為Spring控制的bean,未指定名稱

@Component
public  class UserDaoImpl implements USerDaoI{
}

定義UserDAOImpl類為Spring控制的bean,名稱”userDao”

@Component("userDao")
public  class UserDaoImpl implements USerDaoI{
}

bean的名稱可以定義多個,如@Component(“u1,u2,u3”)

Spring使用註解定義bean,IoC容器並不知道哪些 類被聲明了註解,因此需要類路徑下每一個類進行 掃描,並針對聲明了註解的類進行加載。Spring通 過XML聲明的格式,定義加入掃描的路徑(多配置)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.wd"></context:component-scan
> </beans>

@Component衍生註解

Spring2.5+還定義了3個@Component的衍生註解, 用於在後期版本中對其功能進行深層次的擴展

@Repository 用於對數據層實現類進行標註

@Service 用於對業務邏輯層實現類進行標註

@Controller 用於對控制層實現類進行標註

目前上述三種註解與@Component功能完全相同,僅僅是 名稱上的區別

使用註解定義屬性註入

@Autowired(相當於proerty元素)

功能:標註類的成員變量為自動裝配註入屬性

格式:定義在成員變量的上方

參數:required

可選值:true(默認值)/false

作用:標識該屬性是否必須註入,如果未對其指定註入的值, 則系統拋出異常

註入不同類別的屬性需要使用不同的註解

簡單類型:@Value

對象類型;@Qualifier

自動裝配類型識別(引用類型)

① 註入屬性類型為class

如果類名對應的類只有一個,註入成功 如果類名對應的類有多個,註入失敗

註入屬性類型為interface

如果不存在對應接口的實現類,註入失敗

如果對應接口的實現類為一個,註入成功

如果對應接口的實現類為多個,註入失敗

如果對應接口的實現類指定有bean名稱,則按照按照屬性 定義的名稱進行匹配

如果存在對應名稱的自動裝配bean,註入成功

如果不存在對應名稱的自動裝配bean,註入失敗

使用註解為屬性註入值

1、@Qualifier

功能:為屬性註入的Bean類型的值

格式:定義在成員變量的上方

註意:該註解與@Autowired配合使用

技術分享

@Qualifier必須給出註入的bean的名稱

如果對應的bean不存在,拋出異常,註入失敗

為@Autowired指定參數required=false,避免註入失敗時候 拋出異常(當不能確定 Spring 容器中一定擁有某個類的 Bean 時,可以在需要自動註入該類 Bean 的地方可以使用 @Autowired(required = false),這等於告訴 Spring:在找不到匹配 Bean 時也不報錯

使用註解@Resource為屬性註入

Spring提供對JSR-250中定義@Resource標準註解 的支持。

@Resource與@Autowired功能非常相似,用於 bean的自動裝配,格式略有區別

技術分享

註解定義Bean的作用範圍

@Scope

功能:為當前Bean指定scope參數,默認singleton

格式:定義在類的上方

技術分享

Bean配置(註解)