Using containsBean() involves looking in the parent bean factory if there is one, and that would mean that the same report woykd be used for multiple contexts, which wouldn't make sense.