java - 构造函数只应在 SonarQube 工具中调用不可覆盖的方法
问题描述
在JersyConfiguration
课堂上,我遇到了声纳工具的主要问题,例如从构造函数中删除此调用到可覆盖的“注册”方法。我真的不明白什么代码更改可以解决这个问题。这是我的代码:
泽西配置
public class JerseyConfiguration extends ResourceConfig {
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES);
objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
return objectMapper;
}
@Autowired
public JerseyConfiguration() {
register(TermsResourceImpl.class);
register(AccessIDResourceImpl.class);
register(CatalogResourceImpl.class);
register(SubmitOrderResourceImpl.class);
register(ValidateAndQuoteResourceImp.class);
property(ServletProperties.FILTER_FORWARD_ON_404, true);
register(DynamicLoggingFeature.class);
register(ContextFilter.class);
register(ServiceExceptionMapper.class);
register(JsonParseExceptionMapper.class, 1);
register(JsonMappingExceptionMapper.class, 1);
register(LoggingContextJerseyFilter.class);
register(FeatureToggleFilterBinder.class);
}
@Bean
public Client jerseyClient() {
return ClientBuilder.newClient(new ClientConfig());
}
}
ResourceConfig 覆盖方法
@Override
public ResourceConfig property(final String name, final Object value) {
state.property(name, value);
return this;
}
@Override
public ResourceConfig register(final Class<?> componentClass) {
invalidateCache();
state.register(componentClass);
return this;
}
SonarQube 问题
解决方案
在 register() 调用中添加一个显式的“this”。
例子:
public class JerseyConfiguration extends ResourceConfig {
@Autowired
public JerseyConfiguration() {
this.register(TermsResourceImpl.class);
this.register(AccessIDResourceImpl.class);
...
}
}
推荐阅读
- python - AttributeError:“学生”对象没有属性“calculateGrade”
- gradle - Checkstyle gradle 使用谷歌检查
- tensorflow - 如何结合 CNN 和 LSTM?
- python - Maya python api乘法节点
- php - 如何在 CakePHP 中配置会话生命周期仅持续 24 小时?
- swift - path(in:) 未按预期顺序调用
- c# - C# HTTP 错误 413.1 - 请求实体太大 - 无法正常处理此错误
- asp.net - Asp 面板可见是真的,但面板不显示
- sequelize.js - Sequelize 关联属于不正确的外键
- google-cloud-platform - 为什么在尝试编辑 Google Cloud 函数时“下一步”按钮显示为灰色?