天天看點

依賴注入及AOP簡述(八)——混合請求模式 .

2.3.    混合請求模式

上一節講到了FQCN(全類名)請求模式會帶來依賴定義的柔軟性較差的問題,是以字元串和全類名混合的模式又應運而生了。比如剛才的Spring中的API方式聲明注入點的例子就可以改為使用下面的API:

// Spring的字元串+全類名注入的API

BeanFactory injector = new FileSystemApplicationContext("depositConfiguration.xml")

this.bank = (Bank) injector.getBean("bank", Bank.class); 

// 請求名為"bank"且類為Bank的依賴

而在Guice中則提供了更為安全、可維護性更高的基于注解模式的混合請求模式,此時辨別符不再僅僅是一個字元串,而是一個自定義的Java5注解。例如上一節中舉的Setter注入點的例子,可以用下面的方式來實作混合請求依賴:

public class Depositor {

    private Bank bank;

    // ……

    @Inject  // bank的Setter注入點

    public void setBank(@BankICBC Bank bank)

{

                        // 請求辨別符為"@BankICBC"注解并且類為Bank的依賴

                       //

"@BankICBC"注解是一個被綁定到BankICBC.class的自定義注解

        this.bank = bank;

    }