Java Spring依赖注入与实用程序的静态类?
在Spring应用程序中,如果我想在整个项目中使用实用方法,我应该在实用类中使用静态方法还是在Autowired@组件中使用静态方法 例如,我可以有一个带有Java Spring依赖注入与实用程序的静态类?,java,spring,dependency-injection,Java,Spring,Dependency Injection,在Spring应用程序中,如果我想在整个项目中使用实用方法,我应该在实用类中使用静态方法还是在Autowired@组件中使用静态方法 例如,我可以有一个带有 public static int add(int a, int b){...} 或者我可以有一个类似这样的CalculatorComponent.class并自动连接它: @Component public class CalculatorComponent { public int add(int a, int b){...}} 我
public static int add(int a, int b){...}
或者我可以有一个类似这样的CalculatorComponent.class并自动连接它:
@Component
public class CalculatorComponent {
public int add(int a, int b){...}}
我假设计算器不需要任何依赖项。我在想,如果将来需要添加依赖项,自动布线可能会更灵活,而静态布线则更简单。对此有指导原则吗?您是对的,实用程序类中的静态方法不能使用任何Spring依赖项。因此,如果您的方法可能需要另一个类,或者您可能会添加额外的函数性,那么您应该使用Spring@Component
如果方法非常简单且没有状态行为,则可以使用静态类。例如,使用System.out.println将始终将某些内容打印到系统的当前打印流中,而没有任何状态或其他行为。在我看来,鉴于您已经在使用Spring,问题是您为什么不想自动连线?我发现,与使用实例相比,使用静态方法更容易受到攻击。