首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用静态方法更新数据库安全吗?

使用静态方法更新数据库安全吗?
EN

Stack Overflow用户
提问于 2020-07-16 05:53:41
回答 2查看 275关注 0票数 1

我目前正在从事一个Java项目,该项目定期从网站中删除数据,然后将其存储在MySQL数据库中。我目前使用的是静态方法,但我在网上看到,使用静态方法可能是不安全的。我不完全明白为什么。我应该重构我的代码来替换这些静态方法,还是安全地保留它呢?如果我要改的话,你能解释原因吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-16 07:57:30

这取决于案件。如果静态方法没有任何状态,则它们是安全的,这意味着该方法不会更改某些内部或全局变量(也是静态变量)。

如果方法使用并更改静态变量,可能会导致在您的应用程序中有许多线程时很难解决的bug。

此外,使用Mockito这样的框架进行测试也很困难,因为模拟静态方法需要特殊处理(比如使用PowerMock库)。

这些事实是最重要的原因之一,为什么先进的编码器可能不喜欢使用静态的东西。如果“好且容易”的静态方法能够在以后产生问题,并在测试中造成复杂和需要额外的库(最终您必须这样做),那么它有什么意义呢?

通常,如果需要某种内部状态,则首选单例。另外,在Spring框架中,人们倾向于避免静态的东西,而更喜欢默认为单例的bean。

票数 1
EN

Stack Overflow用户

发布于 2020-07-16 06:10:27

如果这是一个由一个开发人员维护的单线程应用程序,应该可以保持原样。

你打算写单元测验吗?这可能成为一个挑战,例如,Mockito将无法使用静态方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62928352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档