Spring et Hibernate sont deux technologies très complémentaires et selon les besoins, vous pouvez utiliser les deux, l'une ou l'autre ou aucune. Mais les principes fondamentaux sur lesquels reposent ces deux frameworks sont commercialisables à 100% et, plus important encore, sont nécessaires à tout professionnel expérimenté.
L'apprentissage d'Hibernate ne présente que peu d'intérêt sans l'acquisition préalable de connaissances fondamentales sur la modélisation des données relationnelles, la conception des bases de données relationnelles et le traitement des transactions. Il s'agit donc de vos pré-requis pour Hibernate.
L'apprentissage de Spring ne présente que peu d'intérêt sans l'acquisition préalable de connaissances fondamentales sur les modèles de conception, l'injection de dépendances et la conception d'applications (aussi général que cela puisse paraître, vous devez comprendre des éléments tels que les niveaux d'application, les dépendances de classes et de paquets, MVC (il semble que vous soyez déjà familiarisé avec ce dernier via Struts), la sécurité et les normes Web, et bien sûr les principes fondamentaux de la conception ouverte).
En apprenant les deux, vous deviendrez, si ce n'est une valeur marchande, du moins un professionnel très solide, capable de travailler avec confiance et aisance sur la majorité des applications Java (et pas seulement Java).