【发布时间】:2018-08-31 19:58:30
【问题描述】:
当我尝试在 servlet 中使用 Resource 注释时,Sonar 触发规则 squid:S2226“Servlet 不应具有可变实例字段”并告诉我将变量设为 final 或 static。
但是资源注入不起作用以及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 : "Instance methods should not write to "static" fields"
如果有用的话,我使用 SonarLint for Eclipse 3.3.1.201712071600 遇到了这种情况。
【问题讨论】:
标签: java sonarqube sonarlint sonarlint-eclipse