На самом деле, оба плохие.Оба они привязывают ваше приложение к среде Spring, тем самым переворачивая всю концепцию инверсии управления.В идеальном мире ваше приложение вообще не должно осознавать, что им управляет ApplicationContext.
Если вы решили нарушить этот принцип, на самом деле не имеет значения, как вы это делаете.ApplicationContextAware
- это устаревшая версия, существовавшая около как минимум с версии 2.0 .@Autowired
- более новый механизм, но он работает почти так же.Я бы, наверное, пошел с ApplicationContextAware
, потому что он семантически проясняет, о чем он.