java - How to auto-detect and wire classes which extends from specific type? -


spring supports auto-detect classes using annotation @component , <component-scan>, however, @component not @inherited.

i have tried create custom inheritable annotation:

@component @inherited @retention(runtime) public @interface myinheritablecomponent {} 

unfortunately, @myinheritablecomponent doesn't work.

any idea?

edit

file my/package/injectable.java:

@myinheritablecomponent public class injectable {} 

file my/package/foo.java:

public class foo extends injectable {} 

and component-scan defined as:

<context:component-scan base-package="my.package" /> 

in above example, foo not auto-detected.

my intention is, hide @component annotation specific classes.

due absence of @inherited on @component <context:component-scan> default filters doesn't respect @inherited on custom annotations.

however, if add custom filter annotation, work expected:

<context:component-scan base-package="my.package">     <context:include-filter type = "annotation" expression = "myinheritablecomponent" /> </context:component-scan> 

Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

android - layout with fragment and framelayout replaced by another fragment and framelayout -