org.sonar.l10n.java.rules.java.S3749.html Maven / Gradle / Ivy
Why is this an issue?
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.Autowired
-
org.springframework.beans.factory.annotation.Value
-
javax.annotation.Inject
-
javax.annotation.Resource
How to fix it
Add one of these annotations to all non-static
members: @Resource
, @Inject
, @Autowired
or
@Value
.
Code examples
Noncompliant code example
@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
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy