What is the best choice?
It depends on your needs and preferences.
What are the pros and cons?
This might help: Benefits of JavaConfig over XML configurations in Spring?
In the context of Spring Batch, the one advantage I see of XML config over Java config is the ability to change the job definition (like changing the order of steps) without having to recompile the app. Other than that, I would go for Java config.
Will XML Config be deprecated?
No, at least not in the short term. We follow other Spring projects for this kind of decisions. If one day XML config would be deprecated, we would follow the same decision for consistency with other projects from the portfolio.