rspec/rules/S6830/java/rule.adoc

72 lines
2.0 KiB
Plaintext
Raw Normal View History

== Why is this an issue?
Consistent naming of beans is important for the readability and maintainability of the code. More precisely, according to the Spring documentation:
----
Naming beans consistently makes your configuration easier to read and understand. Also, if you use Spring AOP, it helps a lot when applying advice to a set of beans related by name.
----
Not following accepted conventions can introduce inconsistent naming, especially when multiple developers work on the same project, leading to technical debt.
The spring documentation establishes a naming convention that consists of camel-cased names with a leading lowercase letter.
This rule raises an issue when a bean name defined in one of the following annotations does not adhere to the naming convention:
* `@Bean`
* `@Configuration`
* `@Controller`
* `@Component`
* `@Qualifier`
* `@Repository`
* `@Service`
== How to fix it
Change the bean's name to adhere to the naming conventions.
Names should be camel-cased and start with a lowercase letter, for example, `myBean`.
=== Code examples
==== Noncompliant code example
[source,java,diff-id=1,diff-type=noncompliant]
----
@Bean(name = "MyBean") // Noncompliant, the first letter of the name should be lowercase
public MyBean myBean() {
...
----
==== Compliant solution
[source,java,diff-id=1,diff-type=compliant]
----
@Bean(name = "myBean") // Compliant
public MyBean myBean() {
...
----
==== Noncompliant code example
[source,java,diff-id=2,diff-type=noncompliant]
----
@Service("my_service") // Noncompliant, the name should be camel-cased
public class MyService {
...
----
==== Compliant solution
[source,java,diff-id=2,diff-type=compliant]
----
@Service("myService") // Compliant
public class MyService {
...
----
== Resources
=== Documentation
* Spring Framework Documentation - https://docs.spring.io/spring-framework/reference/core/beans/definition.html#beans-beanname[3.3 Bean overview]
=== Articles & blog posts
* Java Guides - https://www.javaguides.net/2019/03/spring-boot-best-practices.html[Spring Boot Best Practices]