В спецификации JPA нигде не указано, что файл необходим, но в определениях контрактов EntityManagerFactory и EntityManager и практически во всей спецификации файл persistence.xml упоминается снова и снова.
Недавно мне пришлось столкнуться с вопросом о том, можно ли программно настроить JPA 2.0 с Hibernate 3.6 без использования файла persistence.xml.
Я пришел к выводу, что это невозможно, хотя вы можете настроить файл так, чтобы он содержал минимальную конфигурацию. Я определил, что файл должен по крайней мере содержать имя вашей персистентной единицы. Остальная информация может быть программно предоставлена фабрике менеджера сущностей в качестве параметров.
Я никогда не использовал пружину, поэтому я не знаю, использует ли она какие-то хитрости для преодоления этой проблемы.