Требует ли Spring, чтобы все bean-компоненты имели конструктор по умолчанию?

Я не хочу создавать конструктор по умолчанию для моего класса auditRecord .

Но Spring, кажется, настаивает на этом:

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'auditRecord' defined in ServletContext resource
[/WEB-INF/applicationContext.xml]: 
Instantiation of bean failed; 
nested exception is org.springframework.beans.BeanInstantiationException: 
Could not instantiate bean class [com.bartholem.AuditRecord]: 
No default constructor found; 
nested exception is 
java.security.PrivilegedActionException:
java.lang.NoSuchMethodException: 
com.bartholem.AuditRecord

Действительно ли это необходимо?

25
задан Koo Park 20 September 2011 в 22:39
поделиться

1 ответ

Николас прав - деньги за конфигурацию XML. Я просто хотел бы отметить, что при использовании аннотаций для конфигурирования ваших bean-компонентов не только проще делать инъекцию в конструктор, но и гораздо более естественный способ сделать это:

class Foo {
    private SomeDependency someDependency;
    private OtherDependency otherDependency;

    @Autowired
    public Foo(SomeDependency someDependency, OtherDependency otherDependency) {
        this.someDependency = someDependency;
        this.otherDependency = otherDependency;
    }
}
19
ответ дан 28 November 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: