Давайте предположим, что мы получили следующий Java-код:Карта Перечисления и инъекции зависимостей весной 2,5
public class Maintainer {
private Map<Enum, List<Listener>> map;
public Maintainer() {
this.map = new java.util.ConcurrentHashMap<Enum, List<Listener>>();
}
public void addListener(Listener listener, Enum eventType) {
List<Listener> listeners;
if((listeners = map.get(eventType)) == null) {
listeners = new java.util.concurrent.CopyOnWriteArrayList<Listener>();
map.put(eventType, listeners);
}
listeners.add(listener);
}
}
Этот фрагмент кода нет ничего, но немного улучшилась шаблон слушателя, где каждый слушатель говорит, какой тип события он заинтересован, и предоставленный метод поддерживает параллельную карту этих отношений.
Изначально я хотел это метод, который будет вызываться через мои собственные рамки аннотаций, но врезался в кирпичной стену различных ограничений аннотаций (например, вы не можете иметь java.lang.Enum в аннотациях пар, также есть множество различных проблем загрузчика классов), поэтому решили использовать Spring.
Может ли кто-нибудь сказать мне, как мне Spring_ify_ это? То, что я хочу достичь:
1. Определить Материнское предприятие класс как фасоль.
2. Сделайте так, чтобы всевозможные слушатели смогли зарегистрироваться до Сопровождающий через XML с помощью addListener. Spring doc и Google очень щедры в примерах.
Есть ли способ достичь этого легко?
Ну, это именно то, что я сказал, - "вы не можете иметь java.lang.Enum, как аннотации пары". Я спрашивал, как мне это сделать весной? – mindas 2008-09-16 15:26:51