Spring @Component, @Controller, @RestController,@Service, and @Repository classes
are singletons by default, meaning only one instance of the class is ever instantiated in the application. Typically such a class might have a few
static members, such as a logger, but all non-static members should be managed by Spring.
This rule raises an issue when a singleton @Component, @Controller, @RestController, @Service,
or @Repository, not annotated with @ConfigurationProperties, has non-static members that are not annotated with
one of:
org.springframework.beans.factory.annotation.Autowiredorg.springframework.beans.factory.annotation.Valuejavax.annotation.Injectjavax.annotation.Resourcejavax.persistence.PersistenceContextjakarta.annotation.Resourcejakarta.inject.Injectjakarta.persistence.PersistenceContextAdd one of these annotations to all non-static members: @Resource, @Inject, @Autowired or
@Value.
@Controller
public class HelloWorld {
private String name = null;
@RequestMapping("/greet", method = GET)
public String greet(String greetee) {
if (greetee != null) {
this.name = greetee;
}
return "Hello " + this.name; // if greetee is null, you see the previous user's data
}
}