во-первых, ваша конфигурация xml должна определять, для какого профиля она определяет бины.
во-вторых, все они должны быть уже загружены, Spring не будет использовать определения, относящиеся к неактивированному профилю
file a.xml:
<beans profile="test1">
... your bean definitions that only get activated on profile test1 here
</beans>
file b.xml:
<beans profile="test2">
... your bean definitions that only get activated on profile test2 here
</beans>
теперь все ваши xml-файлы определяют, в какой конфигурации вы можете запускать все приложение со всеми файлами конфигурации.
и магия: вы можете изменить профиль любым способом, который обеспечивает весенняя загрузкабудь то окружающая среда var, программный способ, аргумент при запуске .... пути бесконечны
см. документацию к профилю для получения информации об этом или учебное пособие по профилю
после запуска будут присутствовать только бины активированных профилей, тех из xml с неактивированным профилем не будет (я думаю / думаю, конфигурация все равно будет загружена, только экземпляры не будут созданыдля них)