Inspectopedia Help

Incorrect autowiring in Spring bean components

Reports autowiring problems on injection points of Spring beans @Component, @Service, and so on.

  • More than one bean of 'concrete' type

  • No beans of 'concrete' type

  • No bean with qualifier

  • Incorrect usages of @Autowired on Spring bean constructors

  • Injected or autowired fields/methods in classes that are not valid Spring beans

Example:

public interface FooInterface {...} @Component public class FooBean implements FooInterface {...} @Component public class OtherBean implements FooInterface {...} @Component public class MyComponent { @Autowired FooInterface foo; // "Could not autowire. There is more than one bean of 'FooInterface' type. // Beans: fooBean(FooBean.java), otherBean(OtherBean.java)" }

Example:

@Component public class MyComponent { @Autowired public MyComponent(BarBean bean) {...} // reports 'Only one @Autowired constructor is allowed' @Autowired public MyComponent(FooBean bean) {...} // reports 'Only one @Autowired constructor is allowed' } @Component public class MyFactory { // reports ' No matching @Autowired constructor' public MyFactory(String str) {...} public MyFactory(int count) {...} }

Example:

public class FooBeanClass { @Autowired // reports 'Autowired members must be defined in valid Spring beans: @Component, @Service, and so on' ServiceBean bean; }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Spring, 233.SNAPSHOT

Last modified: 13 July 2023