annotation based autowire