Execute method on startup in Spring
java, spring
Solution
If by "application startup" you mean "application context startup", then yes, there are many ways to do this, the easiest (for singletons beans, anyway) being to annotate your method with `@PostConstruct`. Take a look at the link to see the other options, but in summary they are:
- Methods annotated with `@PostConstruct`
- `afterPropertiesSet()` as defined by the `InitializingBean` callback interface
- A custom configured init() method
Technically, these are hooks into the bean lifecycle, rather than the context lifecycle, but in 99% of cases, the two are equivalent.
If you need to hook specifically into the context startup/shutdown, then you can implement the `Lifecycle` interface instead, but that's probably unnecessary.
Problem
Is there any Spring 3 feature to execute some methods when the application starts for the first time? I know that I can do the trick of setting a method with `@Scheduled` annotation and it executes just after the startup, but then it will execute periodically.