As in the title above, I am confused about pros cons between injecting applicationContext by directly @Autowired annnotation or implementing ApplicationContextAware interfac
Actually, both are bad. Both of them tie your application to the Spring framework, thus inverting the whole inversion-of-control concept. In an ideal world, your application should not be aware of being managed by an ApplicationContext at all.
Once you have chosen to violate this principle, it doesn't really matter how you do it. ApplicationContextAware
is the legacy version that has been around at least since Version 2.0. @Autowired
is a newer mechanism but they work in pretty much the same way. I'd probably go with ApplicationContextAware
, because it semantically makes clear what it is about.