Spring docs:
Only one annotated constructor per-class can be marked as required, but multiple non-required constructors can be annotated.
If I have one autowired constructor, all is fine. If I have two or more autowired, but required=false annotated constructors, all is fine. But if I mix them in a way, such that there is one or more required=false constructor autowiring annotations and exactly one with the required=true, it throws an exception.
org.springframework.beans.factory.BeanCreationException: Invalid autowire-marked constructor: public annotationconfig.SomeBean(annotationconfig.AnotherBean). Found another constructor with 'required' Autowired annotation: public annotationconfig.SomeBean(annotationconfig.AnotherBean,annotationconfig.AnotherBean[])
Is this expected behavior? Am I missing something about how Spring dependency injection works? If this is normal, why is this a problem for Spring, why can't it handle a setup like this?
@Component public class Account { private Card card; private AtmCard card1; @Autowired(required=true) public Account(Card card) { System.out.println(" in constructor"); this.card = card; } @Autowired(required=false) public Account(Card card, AtmCard card1) { System.out.println(" in setterr"); this.card = card; this.card1 = card1; } }ErrorError creating bean with name 'account': Invalid autowire-marked constructor: public Account(Card,AtmCard). Found constructor with 'required' Autowired annotation already: public Account(Card)Please help with this - Sagar Kharab