Contribution groups allow service implementations that are closely linked together, to be created multiple times (using markers to identify them) with automatic dependency resolution.
e.g. service implementations OneImpl (implements One) and TwoImpl (implements Two) use eachother, then with markers red and blue, we get One@Red and One@Blue and Two@Red and Two@Blue. They will each have their own configurations (unmarked contributions go to both Red and Blue, but contributions marked Red will go to the One@Red and Two@Red services, etc.)
This is applied to the hibernate and hibernate-core services, allowing multiple databases to be used without having to use spring services.