spring - Spring 无法实例化类:原因:java.lang.NoSuchMethodException
问题描述
我试图在一个将拦截数据库查询的类中注入一个 Utils 类,但显然,Spring 找不到构造函数。这两个类都带有注释,@Component
并且在扫描其他弹簧组件时位于包中。
Utils 类如下:
@Component
public class Utils {
private static final String LOCAL_PROFILE = "local";
private final Environment environment;
private final String dummy = "dummy";
@Autowired
public Utils(Environment environment) {
this.environment = environment;
}
public String getInfo() {
//to avoid ST Visa issues in Local environment
if (environment != null && Arrays.asList(environment.getActiveProfiles()).contains(LOCAL_PROFILE)) {
return dummy;
}
return SecurityContextHolder.getContext().getAuthentication().getName();
}
}
我要注入 Utils 的拦截器如下:
@Component
public class ContractInterceptor implements StatementInspector {
private final Utils utils;
@Autowired
public ContractInterceptor(Utils utils) {
this.utils = utils;
}
@Override
public String inspect(String sql) {
//String info = utils.getInfo();
log.info("Enter Interceptor" + sql);
return sql;
}
}
春天失败了
Caused by: java.lang.NoSuchMethodException: com.package.interceptor.<init>() at
java.base/java.lang.Class.getConstructor0(Class.java:3349) at
java.base/java.lang.Class.newInstance(Class.java:556)
谢谢。
解决方案
推荐阅读
- python-3.x - 尝试从函数返回字符串时,“str”对象不是可调用错误
- javascript - 使用 CognitoUser (npm: amazon-cognito-identity-js) 仅验证“代码”
- python - 使用 Flask 传输文件时如何避免解码
- php - InfluxDB 2.0 被 OOM 杀死
- firebase - Firebase 实时数据库规则 - 如何为新用户设置数据?
- python - 如何通过添加一个常数值来查找列表中数字的累积和?
- powerbi - 什么会使 Tableau 报表转换为 Power BI 变得困难?
- vscode-settings - VS Code“转到定义”不存在 - Javascript
- css - CSS 网格高度到一个子元素,而另一个子元素滚动
- javascript - 如何在子组件的 UseEffect 中使用道具?