2012-12-12 85 views
1

爲了減少Spring配置中的樣板數量(不使用組件掃描等),我想以類似Guice的模式運行Spring,並使用「約定優於配置「。bean的Spring自動缺省定義(無組件掃描)

在Guice中,你不需要明確地配置一個bean。我可以創建一個bean結構像下面和吉斯將「做正確的事情」:

class Foo { 
    @Inject 
    public Foo(Bar bar) { 
    } 
} 

class Bar { 
    @Inject 
    public Bar(Blah blah) { 
    } 
} 

class Blah { 
    public Blah() {} 
} 

在春天,我需要有一個相關的@Configuration類,也只是充滿樣板,像這樣:

class Config { 
    @Bean public void foo() { 
    return new Foo(); 
    } 

    // etc. 
} 

我懷疑這可能是一個自定義的BeanFactory,但我想避免必須沿着這條路走下去,如果這可能通過Spring中的其他方式。

@ComponentScan將是一個選擇,但我想這與我的控制之外的對象不具備相應的彈簧@Component註釋工作,我寧願使用更手術刀方法比分量的獵槍掃描。

回答

0

我覺得你已經非常努力了。您可以使用<context:component-scan>以及一些其他基於xml的bean定義,以用於您的控制之外的類。 Guice的方式是綁定這些類的Provider。選擇你的毒藥。最近我發現自己試圖從這些DI框架中擠出更多的魔力,這只是意識到爲什麼有些東西不能自動工作。如果有其他事情,會很危險。