成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用Spring annotation編程的快感

BWrong / 3571人閱讀

摘要:創(chuàng)建應(yīng)用對象之間協(xié)作關(guān)系的行為通常稱為裝配中有三種裝配的方法在中顯式配置在中顯式配置隱式的發(fā)現(xiàn)機制和自動裝配這兒要說的就是第三個自動發(fā)現(xiàn)與裝配,它會帶來編程的快感。

一、前言

Spring的Bean Factory所實現(xiàn)的IoC輕量級容器,可以很方便地讓大家基于POJO開發(fā)JavaEE應(yīng)用程序。

創(chuàng)建應(yīng)用對象之間協(xié)作關(guān)系的行為通常稱為裝配

Spring中有三種裝配Bean的方法

在XML中顯式配置

在Java中顯式配置

隱式的bean發(fā)現(xiàn)機制和自動裝配

這兒要說的就是第三個“自動發(fā)現(xiàn)與裝配”,它會帶來編程的快感。

二、隱式的bean發(fā)現(xiàn)機制和自動裝配

隱式配置分成兩步 1、組件掃描 2、自動裝配

1、組件掃描

組件掃描可以通過XML配置實現(xiàn)

 
 

     
2、自動裝配

spring自動滿足bean之間的依賴,通過Autowired來進行依賴的注入

@Component 
public class Waiter { 
    public void service(String name){ 
        System.out.println("service to " + name); 
    } 
}

@Component 
public class Store { 
    @Autowired 
    private Waiter waiter; 

    public void service(){ 
        waiter.service("kiwi"); 
    } 
}

spring中所有bean都會有一個ID,我們通過@Component設(shè)置的,自動掃描時會以類名首字母小寫為ID。如果想要自定義就要設(shè)置@Component的參數(shù)。

@ComponentScan默認是掃描當前包以及子包。如果想設(shè)置其它包或者多個包,可以通過設(shè)置該注解的basePackages。但是這種是以字符串形式不利于重構(gòu)。可以使用另外一個屬性backPackageClasses指定某個類(開發(fā)中常用標記接口),然后spring會掃描這個類下面的包與子包。

可以使用java規(guī)范的@Named替換@Component,也可以使用java規(guī)范的@Inject去替換@Autowired

三、何來快感

工作最常用的是隱式配置,因為自動掃描非常方便,但是有些情況下只能使用顯式的手動配置。比如引入一些第三方庫,要想讓spring管理這個bean。不可能修改它的源碼。只能通過顯式配置。

1、@Component @Repository @Service @Controller

默認的,以@Component @Repository @Service @Controller或者被@Component注解的自定義注解所注解的類,是唯一的自動發(fā)現(xiàn)候選組件。
開啟組件掃描后,你想要自動裝配兩個對象的話,就無需配置XML了,只要在被引用的對象的類上加上注解:@Component或其它幾個,然后在引用方類中,定義被引用對象的私有變量上加上注解:@Autowired,就搞定了(參考“自動裝配”小節(jié)的例子)。是不是很爽。

2、拋棄@Component @Repository @Service @Controller

你甚至可以拋棄這幾個自動發(fā)現(xiàn)候選組件。這樣的話,只需要利用@Autowired注解,就可以裝配相關(guān)的對象了。想象一下,你定義了許多服務(wù)類,然后你想要引用它們時,只需定義一個服務(wù)類屬性,然后加上@Autowired注解,Spring框架就自動為你裝配好了,是不是很爽。

不過想要拋棄這幾個自動發(fā)現(xiàn)候選組件,你得做一點兒額外得工作,那就是配置一下filter。


    
        
    

看到?jīng)],只需要在component-scan元素中,加入include-filter子元素即可。base-package設(shè)定為你的服務(wù)類所在的namespace,type設(shè)定為regex,expression設(shè)定為你的服務(wù)類類名所滿足的正則表達式。

OK搞定了。接下來你就可以只使用@Autowired注解來裝配任何一個你想要的服務(wù)類了。

參考文檔:http://blog.csdn.net/u0117192...
參考文檔:Spring Framework Reference Document

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70748.html

相關(guān)文章

  • 2.走向自動裝配

    摘要:走向自動裝配模式注解裝配走向自動裝配課程介紹手動裝配自動裝配自動裝配是以手動裝配為基礎(chǔ)實現(xiàn)的手動裝配模式注解模式注解是一種用于聲明在應(yīng)用中扮演組件角色的注解。 2.走向自動裝配 Spring 模式注解裝配 2-1 走向自動裝配 課程介紹 spring framework手動裝配 spring boot自動裝配 spring boot自動裝配是以spring framework手動裝...

    rose 評論0 收藏0
  • 第一章--Spring之旅

    摘要:兩種方式來表示的應(yīng)用上下文。日志,事務(wù)管理和安全這樣的系統(tǒng)服務(wù)經(jīng)常融入到具有核心業(yè)務(wù)邏輯的組件中去,這些系統(tǒng)服務(wù)通過被稱為橫切關(guān)注點。容器使用管理構(gòu)成應(yīng)用的組件,他會創(chuàng)建相互協(xié)作的組件之間的關(guān)聯(lián)。的生命周期四俯瞰的風(fēng)景線模塊,,,, 完整代碼請見:https://github.com/codercuixi...為了降低Java開發(fā)的復(fù)雜性,Spring采用了以下4種策略: 基于poj...

    pkwenda 評論0 收藏0
  • 慕課網(wǎng)_《Spring Boot 2.0深度實踐-初遇Spring Boot》學(xué)習(xí)總結(jié)

    時間:2018年04月08日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):https://www.imooc.com 教學(xué)源碼:無 學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程介紹 課程內(nèi)容 Spring Boot介紹 環(huán)境準備 第一個Spring Boot項目 多模塊項目 打包和運行 1-2 框架定位 showImg(https...

    hqman 評論0 收藏0
  • 慕課網(wǎng)_《探秘Spring AOP》學(xué)習(xí)總結(jié)

    時間:2017年09月03日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com 教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 面向切面 課程章節(jié) 概覽 AOP使用 AOP原理 AOP開源運用 課程實戰(zhàn) 課程總結(jié) 面向切面編程是一種...

    Tony_Zby 評論0 收藏0
  • 第12章 元編程與注解、反射 《Kotlin 項目實戰(zhàn)開發(fā)》

    摘要:第章元編程與注解反射反射是在運行時獲取類的函數(shù)方法屬性父類接口注解元數(shù)據(jù)泛型信息等類的內(nèi)部信息的機制。本章介紹中的注解與反射編程的相關(guān)內(nèi)容。元編程本質(zhì)上是一種對源代碼本身進行高層次抽象的編碼技術(shù)。反射是促進元編程的一種很有價值的語言特性。 第12章 元編程與注解、反射 反射(Reflection)是在運行時獲取類的函數(shù)(方法)、屬性、父類、接口、注解元數(shù)據(jù)、泛型信息等類的內(nèi)部信息的機...

    joyqi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<