2016-03-30 48 views
0

Bir hizmet sınıfını bir önbelleğe alma hizmeti sınıfıyla dekore etmek için dekoratör modelini kullanıyorum. aşağıdaki gibiİlkbaharda bir dekoratör otomatikleştirme

Bahar olmadan, ben bunu enjekte ederdi:

private IService is = new CachingService(new RoleService()); 

Not Dekoratör deseni ile tutarlı, hem CachingService ve RoleServiceIService arabirimini uygulamak, o. Bir IService'un bir dekoratör olarak CachingService, bir IService argümanını alan bir kurucuya sahiptir.

Yay notlarını kullanarak bunu otomatik olarak ayarlamanın bir yolu var mı? durumda yardımcı olacağını

, böyle bir şey düşünün:

@Autowire(with=CachingService, constructor-arg-ref=RoleService) 
private IService is; 

cevap

1

Ayrı sürat fasulyesi olarak CacheService tanımlamak zorunda: adıyla bahar fasulye autowire edebilirsiniz Bundan sonra

<bean id="cacheService" class="CachingService"> 
    <constructor-arg type="innerService"> 
     <bean id="roleService" class="RoleService"> 
    </constructor-arg> 
</bean> 

:

@Autowired 
@Qualifier("cacheService") 
private IService service;