You should be able to introspect the annotations. But that's no guarantee. CDI-, JSF- and Spring-managed beans all allow you to use one form of annotation or another to define how they should be automatically constructed, but that's actually just their defaults. The annotations won't kick in, for example, if you explicitly use the "new" operator to construct a bean and you could then store a bean annotated for Request Scope in Session Scope (or
vice versa. Nor would it help if you used the XML wiring for the framework in question (which overrides annotation-based construction).
Since the beans themselves are POJOs, there's no way to work back from a random instance of that bean.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.