如何解决Sonarqube在PersistenceContext EntityManager上显示严重漏洞
使用Sonarqube扫描Spring Boot项目时,出现以下问题:
@PersistenceContext
private EntityManager em;
问题说:
Spring @ Component,@ Controller,@ Service和@Repository类默认为单例,这意味着在应用程序中仅实例化了该类的一个实例。通常,这样的类可能有一些静态成员,例如logger,但是所有非静态成员都应该由Spring管理。也就是说,它们应具有以下注释之一:@ Resource,@ Inject,@ Autowired或@Value。
在这些类别之一中具有未注入成员可能表示尝试管理状态。由于它们是单例,因此几乎可以保证最终会从User1的会话向User2公开数据。
当单例@ Controller,@ Service或@Repository具有非静态成员且未使用以下任一注释时,此规则会引起问题:
org.springframework.beans.factory.annotation.Autowired
org.springframework.beans.factory.annotation.Value
javax.annotation.Inject
javax.annotation.Resource
那么,这实际上是一个问题吗?还是只是误报?将所有这些查询移至JpaRepository是个好主意吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。