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; }

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

SpringJavaInjectionPointsAutowiringInspection
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Spring | Spring Core | Code

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Spring, 241.18072

Last modified: 18 June 2024