I have 2 scenarios where I would like to understand/confirm the usage of `@Component`:

**Extending concrete class:**
I have a concrete super class A and its sub-class Aa in my web application. I have annotated with Aa with `@Component(value="aa")` and `@Scope(value=WebApplicationContext.SCOPE_SESSION)`. Also, I have annotated A class with `@Component(value="a")` and `@Scope(value=WebApplicationContext.SCOPE_SESSION)`. 

My question -> I am only doing `applicationContext.getBean("aa")`. I can skip the annotations in A class (please correct me if I am wrong), **but I don't know why and how?** My understanding has been that if a class is not annotated with `@Component` or defined in bean configuration file then Spring doesn't handle its instance management.

**Abstract concrete class:**
Same scenario and question as above just that in this case super class is an abstract class.