Аарон, я считаю, что ваш код правильный, но я использовал следующее:
B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean( bean );
factory.initializeBean( bean, "bean" );
Первый метод будет обрабатывать поля и методы @Autowire (но не классические свойства). Второй метод вызывается после обработки (@PostConstruct и любой определенный BeanPostProcessor s).
Контекст приложения можно получить в bean, если он реализует интерфейс ApplicationContextAware.