Inherit annotations from abstract class?

Can I somehow group a set of annotations on an abstract class, and every class that extends this class has automatically assigned these annotations?

At least the following does not work:

@Scope(value = BeanDefinition.SCOPE_PROTOTYPE)
class AbstractService

class PersonService extends AbstractService {
    @Autowired //will not work due to missing qualifier annotation
    private PersonDao dao;


The answer is: no

Java annotations are not inherited unless the annotation type has the @Inherited meta-annotation on it:

Spring's @Component annotation does not have @Inherited on it, so you will need to put the annotation on each component class. @Service, @Controller and @Repository neither.

The short answer is: with the annotations that you mentioned in your example, no.

The long answer: there is a meta-annotation called java.lang.annotation.Inherited. If an annotation itself is annotated with this annotation, then when a class is annotated with it, its subclasses are also automatically annotated with it by implication.

However, as you can see in the spring source code, the @Service and @Scope annotation are not themselves annotated with @Inherited, so the presence of @Service and @Scope on a class is not inherited by its subclasses.

Maybe this is something that can be fixed in Spring.

I have this piece of code in my project and it works just fine, although it's not annotated as Service:

public abstract class AbstractDataAccessService {

    protected GenericDao genericDao;



public class ActorService extends AbstractDataAccessService {

    // you can use genericDao here


So you don't need to put annotation on your abstract class but even if you do you will still have to put annotation on all subclass as @Component or @Service annotations are not inherited.

Need Your Help mvc grid with each cell having its own record css grid

I am wondering about the most elegant solution of having a grid with each cell having its own record and specify say 3 records across 5 down for example. It is having a "tile" effect of records