Spring依赖注入与实用程序的静态类?

时间:2019-04-23 06:31:07

标签: java spring dependency-injection

在Spring应用程序中,如果我有要在整个项目中使用的Utility方法,是否应该在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){...}}

我假设计算器不需要任何依赖关系。我在想自动装配可能会更灵活,以防将来需要添加依赖时使用,而静态更简单。有指导方针吗?

1 个答案:

答案 0 :(得分:0)

是的,实用程序类中的静态方法不能使用任何Spring依赖项。因此,如果您的方法有可能需要其他类,或者可能添加其他功能,则应该使用Spring @Component。

如果方法是并且将保持非常简单并且没有状态行为,则可以使用静态类。例如。使用System.out.println将始终将某些内容打印到系统的当前PrintStream中,而不会出现任何状态或其他行为。