Spring依赖注入与静态类工具相比,哪个更好?

4
在Spring应用程序中,如果我有一种实用方法想要在整个项目中使用,我应该在Utility类中使用静态方法还是Autowired @Component?
例如,我可以有一个CalculatorUtility.class,其中包含静态方法:
public static int add(int a, int b){...}

或者我可以有一个像这样的CalculatorComponent.class,并自动装配它:

@Component
public class CalculatorComponent {
public int add(int a, int b){...}}

我假设这个计算器不需要任何依赖项。我认为自动装配可能更加灵活,以防将来需要添加依赖项,而静态方法只是更简单。是否有相关的指导方针?


在我看来,鉴于您已经在使用Spring,那么问题是为什么您不想要自动装配呢?我发现与使用实例相比,使用静态方法往往会更容易出现问题。 - racraman
1个回答

3
你是对的,实用程序类中的静态方法不能使用任何Spring依赖。因此,如果您的方法需要另一个类或者可能添加其他功能,则应使用Spring @Component。
如果您的方法非常简单且没有状态行为,例如使用System.out.println将始终将某些内容打印到系统的当前PrintStream而不具有任何状态或其他行为,则可以使用静态类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接