== Why is this an issue?

Spring dependency injection framework does not support injecting data into static fields. When @Value, @Inject, or @Autowired are applied to static fields, they are ignored.

=== What is the potential impact?

* *Null Values*: Uninitialized static fields annotated with @Value, @Inject, or @Autowired will not be initialized by Spring, potentially causing NullPointerException at runtime.
* *Confusing Code*: The presence of injection annotations on static fields can mislead developers into believing that the fields will be populated by Spring.

This rule raises an issue when a static field is annotated with @Value, @Inject, or @Autowired.

== How to fix it

Either use an instance field instead of a static field or remove the @Value, @Inject, or @Autowired annotation and initialize the field.

=== Code examples

==== Noncompliant code example

[source,java,diff-id=1,diff-type=noncompliant]
----
@Component
public class MyComponent {

    @Value("${my.app.prop}")
    private static SomeDependency dependency; // non compliant, @Value will be ignored and no value will be injected
    // ...
}
----

==== Compliant solution

[source,java,diff-id=1,diff-type=compliant]
----
@Component
public class MyComponent {

    @Value("${my.app.prop}")
    private final SomeDependency dependency;
    // ...
}
----

== Resources
=== Articles & blog posts
* Java Guides - https://www.baeldung.com/spring-inject-static-field[Injecting a Value in a Static Field in Spring]
