Spring是否Spring:我们应该使用静态方法在类上创建@Component吗?

时间:2012-12-06 14:47:43

标签: java spring

我有一个包“Utils”,我有很多课程。其中一些只是一些使用静态方法的类,另一些是一些单例,我在构造函数中传递一些参数(使用@Value以便通过注释替换基本的XML配置)。

我在ApplicationContext中有一个配置来扫描包。

所以,我的问题是:对于使用静态方法的类,我们应该使用@Component注释来转换它们以便拥有一个单例(仍然使用静态方法),还是应该让它们处于这种状态而不用Spring管理它们?

谢谢

1 个答案:

答案 0 :(得分:1)

如果要维护任何类型的状态,或者任何协作者则创建一个Spring组件。如果您需要的功能是无状态的,并且不依赖于它调用的任何其他方法的状态,那么将其设置为静态。

例如在我的应用程序中,我有一个静态的util方法,可以在最小值和最大值之间夹住整数,但是一个返回当前日期的Spring bean ......

@Service
public class DateServiceImpl implements DateService {
    @Override
    public Date getCurrentDate() {
        return Calendar.getInstance().getTime();
    }
}

为什么呢?因为现在我可以对使用当前日期的代码进行单元测试。

相关问题