spring无法示例化类:原因:java.lang.nosuchmethodexception

crcmnpdw  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(292)

我试图在一个类中注入一个utils类,这个类将截获数据库查询,但是,很显然,spring找不到构造函数。两个类都用 @Component 并对 Package 中的其他Spring部件进行了扫描。
utils类如下所示:

  1. @Component
  2. public class Utils {
  3. private static final String LOCAL_PROFILE = "local";
  4. private final Environment environment;
  5. private final String dummy = "dummy";
  6. @Autowired
  7. public Utils(Environment environment) {
  8. this.environment = environment;
  9. }
  10. public String getInfo() {
  11. //to avoid ST Visa issues in Local environment
  12. if (environment != null && Arrays.asList(environment.getActiveProfiles()).contains(LOCAL_PROFILE)) {
  13. return dummy;
  14. }
  15. return SecurityContextHolder.getContext().getAuthentication().getName();
  16. }
  17. }

我要在其中注入utils的拦截器如下所示:

  1. @Component
  2. public class ContractInterceptor implements StatementInspector {
  3. private final Utils utils;
  4. @Autowired
  5. public ContractInterceptor(Utils utils) {
  6. this.utils = utils;
  7. }
  8. @Override
  9. public String inspect(String sql) {
  10. //String info = utils.getInfo();
  11. log.info("Enter Interceptor" + sql);
  12. return sql;
  13. }
  14. }

Spring失效

  1. Caused by: java.lang.NoSuchMethodException: com.package.interceptor.<init>() at
  2. java.base/java.lang.Class.getConstructor0(Class.java:3349) at
  3. java.base/java.lang.Class.newInstance(Class.java:556)

谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题