SpringMVC 基本註解[@Resource,@Autowired,@Component]

使用spring註解@Autowired,@Component須要先配置schema:java

xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-2.5.xsd"

顯式的配置<context:annotation-config/> spring

該配置隱式註冊了多個對註解進行解析的處理器,例如:ui

    AutowiredAnnotationBeanPostProcessor
    CommonAnnotationBeanPostProcessor 
    PersistenceAnnotationBeanPostProcessor
    RequiredAnnotationBeanPostProcessor

 

另外:比較建議使用@Resource ,而不是@Autowired註解,由於Autowired是spring提供的,而Resource是J2EE提供的spa

@Resource註解說明:.net

    @Resource和@Autowired同樣,也能夠標註在字段或屬性的setter方法上
code

    @Resource默認是按照名稱裝配,名稱能夠根據name屬性來指定。當找不到與名稱匹配的bean時,纔會按類型裝配
component

        若註解標註在字段上,且未指定name屬性,則默認取字段名做爲bean名稱,尋找依賴對象
orm

        若註解標註在setter上且未指定name屬性,則默認取屬性名做爲bean名稱尋找依賴對象
xml

        若是沒有指定name屬性,而且按照默認的名稱仍然找不到依賴對象時,它就會按照類型匹配,但只要指定了name屬性,就只能按照名稱匹配了對象


@Autowired註解說明:

    @Autowired默認按照類型裝配對象的,默認狀況下它要求依賴對象必須存在

        若是容許null值,能夠設置它的required屬性爲false,如@Autowired(required=false)

        若想要按照名稱裝配,能夠結合@Qualifier註解一塊兒使用,如:

            @Autowired(required=false)

            @Qualifier("personDaoBean")


在spring 2.5以上,咱們引入組件自動掃描機制,它能夠在classpath下尋找標註了@Service,@Repository,@Autowired,@Component註解的類,並把他們放入到spring的容器中管理,他的做用和在xml中使用bean節點配置組件同樣,


使用自動掃描機制,須要配置<context:component-scan base-package="com.jadyer"/> ,啓動自動掃描其中base-package指定須要掃描的包,它會掃描指定包中的類和子包裏面類 

@Service用於標註業務層組件 
@Repository用於標註數據訪問組件,即DAO組件 
@Controller用於標註控制層組件,如Struts中的Action 
@Component泛指組件,當組件不要好歸類時,能夠使用這個註解進行標註 

相關文章
相關標籤/搜索