Spring boot provides some classes that can be fired at events. One of these events is ContextRefreshedEvent so, whenever your context is changed e.g. Application start up this event will be fired.
The event also contains the Application Context which you can use to get the beans of your class.
Example:
@Component
public class ApplicationStartup implements ApplicationListener {
@Override
public void onApplicationEvent(final ContextRefreshedEvent event) {
// here your code ... e.g. event.getApplicationContext();
return;
}
}
Once you have the Application Context, you can start your job class and get the beans from the Context.
The job will start normally with all its dependency correctly instantiated.