Java:检测服务中过多的注入依赖项
如果一个服务注入了太多的服务,是否有可能自动检测 工具链:java+spring boot+sonarqube+gitlabciJava:检测服务中过多的注入依赖项,java,spring-boot,dependency-injection,Java,Spring Boot,Dependency Injection,如果一个服务注入了太多的服务,是否有可能自动检测 工具链:java+spring boot+sonarqube+gitlabci public class TooMuchService { // injection private AService aService; private BService bService; private CService cService; private DService dService; private EService eServ
public class TooMuchService {
// injection
private AService aService;
private BService bService;
private CService cService;
private DService dService;
private EService eService;
private FService fService;
private GService gService;
}
您可以使用
BeanPostProcessor
,如下所示:
这样,从对象bean
可以获得每个实例化bean的类名。您可以在之后使用反射来搜索注释,将它们相加,并检查您是否接受该数字
但我不会担心这个数字,它不会影响性能。嘿,谢谢你的回答。我在问,因为如果一个类注入了太多的依赖性——上帝类,那可能是建筑中的床味。
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class CustomBeanPostProcessor implements BeanPostProcessor
{
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException
{
System.out.println("Called postProcessBeforeInitialization() for :" + beanName);
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException
{
System.out.println("Called postProcessAfterInitialization() for :" + beanName);
return bean;
}
}