java - 将 Spring Bean Autowiring 到默认方法的接口(interface)中

标签 java spring spring-boot

我需要向某些类实现的接口(interface)添加默认方法,但我的 IDE 提示(bean 可能尚未初始化)。 代码如下:

public interface IValidator {

    MyValidationBean beanToBeAutowired;
    ...
    default Boolean doSomeNewValidations(){
        return beanToBeAutowired.doSomeNewValidations();
    }
}

是否只是不允许 Autowiring 到接口(interface)中或者代码有问题? 在界面上使用 @Component 没有任何区别。

我宁愿保留这个设计而不是使用抽象类。

最佳答案

我可以想到如下解决方案 -

public interface IValidator {

   public Service getBeanToBeAutowired();

   default Boolean doSomeNewValidations(){
    return getBeanToBeAutowired().doSomeNewValidations();
   }

}

public class ValidatorClass implements IValidator {

    @Autowire private Service service;

    @Override
    public Service getBeanToBeAutowired() {
        return service;
    }

}

关于java - 将 Spring Bean Autowiring 到默认方法的接口(interface)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52621518/

相关文章:

java - mybatis中如何调用oracle函数

java - 什么时候使用验证?

java - 如何处理 Spring MVC 中的 400 错误

java - 变量的 Spring Boot 约定

java - Android:接受正则表达式中的所有特殊字符

java - 将大 CSV 文件加载到 SQLITE 数据库

spring - setenv.sh 在 Tomcat 中到底有什么用?

java - 为什么模拟的类不会进入未模拟的函数?

java.lang.NoClassDefFoundError : org/springframework/cloud/test/TestSocketUtils after upgrading Spring Boot version to 3. x

java - 构造函数和关键字 'this'