-
Notifications
You must be signed in to change notification settings - Fork 38.7k
Closed
Labels
in: coreIssues in core modules (aop, beans, core, context, expression)Issues in core modules (aop, beans, core, context, expression)type: enhancementA general enhancementA general enhancement
Milestone
Description
Ramnivas Laddad opened SPR-5920 and commented
Currently, users who extend AbstractInterfaceDrivenDependencyInjectionAspect need to have some knowledge of AspectJ constructs. Specifically, they need to know about the 'declare parents' construct and the pointcut syntax. With the help of generics, we should be able to remove both these issues paving the way for type-safe aspect that requires no/little knowledge of AspectJ.
So instead of:
aspect PricingStrategyDependencyInjectionAspect extends AbstractInterfaceDrivenDependencyInjectionAspect {
private PricingStrategy pricingStrategy;
public pointcut inConfigurableBean() : within(PricingStrategyClient+);
public void configureBean(Object bean) {
((PricingStrategyClient)bean).setPricingStrategy(this.pricingStrategy);
}
declare parents: PricingStrategyClient implements ConfigurableObject;
public void setPricingStrategy(PricingStrategy pricingStrategy) {
this.pricingStrategy = pricingStrategy;
}
}
they can write:
aspect PricingStrategyDependencyInjectionAspect extends GenericInterfaceDrivenDependencyInjectionAspect<PricingStrategyClient> {
private PricingStrategy pricingStrategy;
public void configure(PricingStrategyClient bean) {
bean.setPricingStrategy(pricingStrategy);
}
public void setPricingStrategy(PricingStrategy pricingStrategy) {
this.pricingStrategy = pricingStrategy;
}
}
Affects: 3.0 M3
Referenced from: commits 29139df
Metadata
Metadata
Assignees
Labels
in: coreIssues in core modules (aop, beans, core, context, expression)Issues in core modules (aop, beans, core, context, expression)type: enhancementA general enhancementA general enhancement