Есть ли способ использовать метод Spring для поиска с параметрами? Например, я хочу иметь возможность создавать экземпляр объектов с прототипом, передавая им произвольные параметры через конструктор.Впрыск метода весеннего поиска с параметрами
ответ
Вы можете вводить их посредством инъекции поля/установки. (Обратите внимание, что инжектор конструктора нахмурился пружиной, хотя он поддерживается)
Короче говоря, нет. Весна поддерживает нечто, называемое «инъекцией метода», но оно отличается от того, что вы думаете. Spring также поддерживает впрыск конструктора, но тогда вы не вызываете конструктор самостоятельно, Spring и проводку сами.
Вместо этого, вы можете использовать отражение для создания экземпляра класса и передать произвольные параметры себя:
Class<MyObject> clazz = MyObject.class; // this can be looked up or stored in a field, etc.
MyObject myObject = clazz.getConstructor(String.class, int.class)
.newInstance("arbitrary parameter", 42);
Похоже, эта жизненно важная особенность была наконец-то добавили в Spring 4.1.0.RC2. Я тестировал его, и он работает.
Он был добавлен в качестве части JIRA билета SPR-7431 ("Passing lookup-method arguments to created bean constructor"):
< поиск-метод /> должен позволять указать любое количество параметров. Эти параметры должны передаваться непосредственно конструктору только что созданного компонента.
Для получения дополнительной информации о том, как была добавлена функция, this blog post был написан парнем, открывшим билет JIRA.
Почему существует предпочтение инъекции установщика над инъекцией конструктора? Я думал, что они эквивалентны. – 2010-12-02 17:27:28