EN
Spring Boot 2 - set full class names as bean names (package + class name)
10
points
In this short article, we would like to show how to set full class names as bean names in Spring Boot 2.
Note: as full class name we understand
some.package.ClassName
format as way to name beans.
Quick solution:
Use
nameGenerator
parameter in@SpringBootApplication
annotation.
@SpringBootApplication(nameGenerator = MyBeanNameGenerator.class)
Practical example
SpringBootWebApplication.java
file:
package com.dirask.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(nameGenerator = CustomBeanNameGenerator.class) // <----- REQUIRED
public class SpringBootWebApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootWebApplication.class, args);
}
}
CustomBeanNameGenerator.java
file:
package com.dirask.example;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanNameGenerator;
public class CustomBeanNameGenerator implements BeanNameGenerator {
@Override
public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
return definition.getBeanClassName();
}
}