autowiring and applicationContextAware and beanNameAware