Наверняка, всем вопрос мой будет очевиден, но я не могу понять почему метод:
public synchronized GenericsBean getByName(String name) {
          return container.get(name);
    }
Должен обязательно быть synchronized? Общий ресурс - container. Мы его никаким образом в этом методе не меняем, поэтому, на мой взгляд - synchronized здесь лишний... Приведите, пожалуйста, пример, где требовалось бы synchronized метода get? и для чего?