Spring вызывает конструктор объекта перед установкой свойств - PullRequest
1 голос
/ 28 апреля 2009

У меня есть абстрактный класс Foo, у которого есть неабстрактный метод с именем Bar. У меня есть класс Baz, который расширяет Foo и имеет собственный уникальный конструктор. По умолчанию, когда Spring запускает экземпляр класса Baz при запуске, он вызывает конструктор Baz перед передачей значений в метод родительского класса Bar.

Есть ли способ переопределить это поведение, чтобы Bar вызывался перед конструктором Baz? Или, если мне нужно как-то расширить поведение Spring по умолчанию, каков будет лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 29 апреля 2009

Вы можете рассмотреть возможность замены логики в конструкторе методом afterPropertiesSet. См. InitializingBean интерфейс .

3 голосов
/ 28 апреля 2009

Мне кажется, что то, что вы описываете, - это способ работы Java. Объекты должны быть полностью построены (через конструкторы), прежде чем вы сможете вызывать какие-либо методы в этом экземпляре.

Мой весенний код редко использует конструкторы, поскольку они не очень хороши. Я начал использовать несколько методов с аннотацией @PostConstruct, которые могут лучше соответствовать вашим потребностям.

...