当我尝试在 servlet 中使用 Resource 注释时,Sonar 触发规则 squid:S2226“Servlet 不应具有可变实例字段”并告诉我将变量设为 final 或 static。
但是资源注入不起作用以及最终和静态变量。
在 servlet 中不再推荐声纳或资源注入中的错误吗?
public class MyServlet extends HttpServlet {
@Resource(name = "jdbc/database")
private DataSource dataSource;
}
ServletConfig 也出现了类似的难题
private ServletConfig config;
@Override
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
在这里,config
不能设为最终,但将其设为静态会触发其他规则 squid:S2696:“实例方法不应写入“静态”字段”
如果有用的话,我使用 SonarLint for Eclipse 3.3.1.201712071600 遇到这种情况。