I agree there's no functional difference.  

I prefer `@PostConstruct` because it's a less-specific dependency: `@PostConstruct` is saying "Hey, whatever dependency-injection container or test harness or whatever you might be, this must be called before I am ready for use.", whereas implementing `InitializingBean` is saying "Hey, I implement a Spring-Framework-Specific API with its attendant expectations."  Since this bean is also `ApplicationContext` aware, one gains particularly little from moving away from `InitializingBean`, since the bean still imports and implements Spring-specific APIs.