在Spring中自动装配装饰器

时间:2016-03-30 20:46:47

标签: spring

我正在使用装饰器模式来使用缓存服务类来装饰服务类。

如果没有Spring,我会按如下方式注入:

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

请注意,与Decorator模式一致,CachingServiceRoleService都实现了IService接口。 CachingService,作为IService的装饰器有一个带IService参数的构造函数。

有没有办法使用Spring注释自动装配?

如果它会有所帮助,我想象一下这样的事情:

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

1 个答案:

答案 0 :(得分:1)

您必须将CacheService定义为单独的sprint bean:

abc 03-03-2016

在此之后,您可以按名称自动装配spring bean:

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